Buongiorno,
ho bisogno di un aiuto a parsare un file XML non valido.
Il file XML più o meno è così:
Codice:
<sms protocol="0" address="+393771519655" date="1304624537496" type="2" subject="null" body="TESTO" toa="null" sc_toa="null" service_center="null" read="1" status="-1" locked="0" readable_date="giovedì 1 gennaio 1970 01:00:00 GMT+01:00" contact_name="MikSco" />
Ho scritto più o meno perchè:
- I vari campi (protocol, address, date, ecc) possono trovarsi in un ordine diverso da quello mostrato
- Alcuni campi (readable_date, contact_name, ecc) possono non essere presenti
- Il campo "address" può contenere o meno il prefisso nazionale (+39)
Quale regex devo utilizzare per ottenere SOLAMENTE: address, date, type e body?
In passato utilizzavo, tuttavia se il file viene modificato anche di un minimo il risultato cambia.
Codice PHP:
preg_match_all('#<sms(.*)address="(.*)"(.*)date="(.*)"(.*)type="(.*)"(.*)body="(.*)"(.*)" />#i',$g,$match);