Visualizzazione risultati 1 fino 3 di 3

Discussione: Parsare XML con preg_match_all

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito Parsare XML con preg_match_all

    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è:

    1. I vari campi (protocol, address, date, ecc) possono trovarsi in un ordine diverso da quello mostrato
    2. Alcuni campi (readable_date, contact_name, ecc) possono non essere presenti
    3. 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);
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,744

    Predefinito

    Con non valido intendi che non è well formed? In tal caso, quali errori di sintassi presenta? Hai considerato la possibilità di correggere in qualche modo (anche automatico) gli errori e analizzarlo in maniera tradizionale?

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    Il codice è molto incasinato xD comunque sono riuscito a risolvere in questo modo.
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •