Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [XML][PHP] Parsowanie XML
Forum PHP.pl > Forum > Przedszkole
rasten
Witam, mój skrypt dostaje taki oto XML z zewnętrznego serwisu:
  1. <RESP CONC='false'>
  2. <SEQ='4113' MID='1999919' STA='OK'>
  3. </RESP>
  4. OK

To co widać to jest wynik wyświetlenia takiej instrukcji: var_dump(htmlentities($t['result']));
Jak próbuje go zamienić na SimpleXML $simple = simplexml_load_string($result) dostaję errory w stylu:
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 2: parser error : error parsing attribute name in
Warning: simplexml_load_string() [function.simplexml-load-string]: <SEQ='4113' MID='2000029' STA='OK'>

Czy to jest wogóle poprawny XML? i jak pozbyć się tego OK na końcu? Generalnie chodzi mi o to jak odczytać zawartość tego XML na swoje potrzeby, najlepiej tak żeby SimpleXML działało?
skowron-line
Cytat
Czy to jest wogóle poprawny XML?
Nie, nie jest to poprawny xml
http://www.w3schools.com/xml/
rasten
Hmm no to troszkę lipa. Jak najlepiej to sobie przeparsować? Bawić się w jakieś preg_machy, substringi czy może wywalić to 'OK' na końcu, a tą linijkę
  1. <SEQ='4113' MID='1999919' STA='OK'>
zamienić na
  1. <Test SEQ='4113' MID='1999919' STA='OK'></Test>
i wrzucić do SimpleXml? Macie może inny pomysł?
Bo jaka będzie wydajność takiego skryptu przy kilku tysiącach linijek?
skowron-line
  1. <?xml version="1.0"?>
  2. <tests>
  3. <Test SEQ='4113' MID='1999919' STA='OK'></Test>
  4. <Test SEQ='4113' MID='1999919' STA='OK'></Test>
  5. <Test SEQ='4113' MID='1999919' STA='OK'></Test>
  6. <Test SEQ='4113' MID='1999919' STA='OK'></Test>
  7. <Test SEQ='4113' MID='1999919' STA='OK'></Test>
  8. <Test SEQ='4113' MID='1999919' STA='OK'></Test>
  9. </tests>


i tak będzie działać.
rasten
Dobra dzięki. Czyli będę go sobie przerabiał na poprawnego xml'a, ale jak ktoś ma jeszcze jakiś pomysł to słucham;)
Crozin
Spróbuj wczytać to jako HTML do DOMDocument - inny parser XML-a.
rasten
Niestety w ten sposób też nie daje rady. Pozostaje mi przerobienie tak ja napisałem wyżej;/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.