parsuję plik XML w PHP za pomocą XMLReader i ładnie wszystko wyciągam poza jednym tagiem.
Przykładowo mam plik:
<?xml version="1.0" encoding="utf-8"?> <offers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1"> <group name="books"> <o id="286" url="http://kodeks-net.pl/p/1521/286/ustawa-o-podatkach-i-oplatach-lokalnych-komentarz-z-suplementem-elektronicznym--prawo.html" price="201.60" avail="1" weight="0" stock="10" set="0"> <cat><![CDATA[PRAWO]]></cat> <name><![CDATA[Ustawa o podatkach i opłatach lokalnych Komentarz (z suplementem elektronicznym)]]></name> <imgs><main url="http://kodeks-net.pl/templates/images/thumb/10019/496b435553343.jpg"/></imgs> <desc><![CDATA[Bardzo praktyczny i niezwykle szczegółowy kome....]]></desc> <attrs> <a name="Autor"><![CDATA[ Morawski Wojciech]]></a> <a name="ISBN"><![CDATA[9788378041214]]></a> <a name="Ilosc_stron"><![CDATA[]]></a> <a name="Wydawnictwo"><![CDATA[ODDK - Ośrodek Doradztwa i Doskonalenia Kadr]]></a> <a name="Rok_wydania"><![CDATA[2013]]></a> <a name="Oprawa"><![CDATA[Miękka]]></a> <a name="Format"><![CDATA[B5]]></a> </attrs> </o> </group> </offers>
Parsuję go w ten sposób:
<HTML> <HEAD> <TITLE> XMLReader </TITLE> </HEAD> <BODY> <? $file_in="testowy2.xml"; $file_out="data.csv"; $sep="|"; $eol="\n"; $reader = new XMLReader(); if (!$reader->open($file_in)) { } while($reader->read()) { if($reader->nodeType == XMLReader::ELEMENT) { $name = $reader->name; } if ( $reader->nodeType ==XMLReader::ELEMENT && $reader->name == "o" ) { } if ( $reader->nodeType ==XMLReader::ELEMENT && $reader->name == "imgs" ) { } if($reader->nodeType == XMLReader::TEXT || $reader->nodeType == XMLReader::CDATA) { } if($reader->nodeType == XMLReader::END_ELEMENT && $reader->name == 'o') { } } $reader->close(); ?> </BODY> </HTML>
Niestety nie wiem jak wyciągnąć URL z (tag w tagu):
<imgs><main url="http://kodeks-net.pl/templates/images/thumb/10019/496b435553343.jpg"/></imgs>
Proszę o pomoc.