SimpleXML nie odczytuje atrybutow z tagu

pyt Q

Witam,
Zaznaczam od razu, ze dopiero zaczynam zabawe z XML w PHP (i w sumie wogole z XML, zawsze wolalem korzystac ze zwyklych baz, ale tym razem projekt tego wymaga). Z poczatku ucieszylem sie, ze jest funkcja simplexml_load_string ktora bardzo ladnie zalatwia parsowanie XML-a, ale napotkalem na problem, ktory wszystko mi psuje. Mam taki prosty przykladowy plik XML (badz pseudo XML, mniejsza o zgodnosc ze standardami, jako przyklad powinno wystarczyc):

<Zadanie IDZad="7" IDProj="7" Data="-04-05" Typ="4" > <Zadanie IDZad="9" IDProj="7" Data="-04-09" Typ="4" >lalala
I teraz po wczytaniu go przez simplexml_load_string dostaje cos takiego:
SimpleXMLElement Object ( [PunktyKontrolne] => SimpleXMLElement Object ( [Zadanie] => Array ( [0] => SimpleXMLElement Object ( => Array ( [IDZad] => 0 [IDProj] => 7 [Data] => -04-19 [Typ] => 3 ) ) [1] => SimpleXMLElement Object ( => Array ( [IDZad] => 7 [IDProj] => 7 [Data] => -04-05 [Typ] => 4 ) )
[2] => lalala ) ) )
Czyli, jesli cos znajduje sie pomiedzy tagiem zamykajacym i otwierajacym (np: lalala) to funkcja calkowicie ignoruje atrybuty Czy jest jakis sposob zeby temu zaradzic?
Z gory dzieki za pomoc Piotr

odp A

Hmm, nie wiem czy problem da sie rozwiazac w simplexml, ale w miedzyczasie znalazlem taka fajna klase, ktora wczytuje mi wszystko elegancko: minixml.psychogenic.com/
Pzdr Piotr

odp A

Zaznaczam od razu, ze dopiero zaczynam zabawe z XML w PHP (i w sumie wogole z XML, zawsze wolalem korzystac ze zwyklych baz, ale tym razem projekt tego wymaga). Z poczatku ucieszylem sie, ze jest funkcja simplexml_load_string ktora bardzo ladnie zalatwia parsowanie XML-a, ale napotkalem na problem, ktory wszystko mi psuje. Mam taki prosty przykladowy plik XML (badz pseudo XML, mniejsza o zgodnosc ze standardami, jako przyklad powinno wystarczyc):


<Zadanie IDZad="7" IDProj="7" Data="-04-05" Typ="4"
<Zadanie IDZad="9" IDProj="7" Data="-04-09" Typ="4" lalala

I teraz po wczytaniu go przez simplexml_load_string dostaje cos takiego:
SimpleXMLElement Object ( [PunktyKontrolne] = SimpleXMLElement Object ( [Zadanie] = Array ( [0] = SimpleXMLElement Object ( = Array ( [IDZad] = 0 [IDProj] = 7 [Data] = -04-19 [Typ] = 3 ) ) [1] = SimpleXMLElement Object ( = Array ( [IDZad] = 7 [IDProj] = 7 [Data] = -04-05 [Typ] = 4 ) )
[2] = lalala ) ) )
Czyli, jesli cos znajduje sie pomiedzy tagiem zamykajacym i otwierajacym (np: lalala) to funkcja calkowicie ignoruje atrybuty Czy jest jakis sposob zeby temu zaradzic?
Z gory dzieki za pomoc Piotr

Jak to ignoruje? A to? => Array ( [IDZad] => 0 [IDProj] => 7 [Data] => -04-19 [Typ] => 3 )
pl.php.net/manual/pl/function.simplexml-element-attributes.php Czytałeś?

odp A

Jak to ignoruje? A to? = Array ( [IDZad] = 0 [IDProj] = 7 [Data] = -04-19 [Typ] = 3 ) pl.php.net/manual/pl/function.simplexml-element-attributes.php Czytałeś?

A to co cytujesz jest stworzone z tej linijki:
Natomiast zauwaz, ze z tej linijki: <Zadanie IDZad="9" IDProj="7" Data="-04-09" Typ="4" >lalala powstalo tylko to: [2] => lalala
Czytalem. Moze nie dosc uwaznie bo nic mi nie pomoglo. Na szczescie problem juz chyba nieaktualny bo znalazlem fajna klase ktora nie ma z tym problemow (moja odpowiedz post wyzej). Fajnie jednak by bylo rozwiazac to za pomoca wbudowanych mechanizmow
Pzdr Piotr

Dodaj odpowiedź

Tytuł:

Mail: (w celu weryfikacji posta)