Witam, mam problem z parsowaniem xml'a . Używam XMLREADER.
Plik xmla wygląda tak :
<moto>
<typ>pełny</typ>
<import>
<ogloszenie>
<ofertaid>89717</ofertaid>
<status>1</status>
<rodzaj>osobowy</rodzaj>
<kolor>pomarańczowy met.</kolor>
<marka>Dacia</marka>
<model>
<![CDATA[ Duster ]]>
</model>
<nadwozie>kombi</nadwozie>
<typsilnika>benzyna+lpg</typsilnika>
<pojemnosc>3424</pojemnosc>
<moc>234</moc>
<przebieg>345234</przebieg>
<rok_produkcji>1990</rok_produkcji>
<cena_brutto>34554</cena_brutto>
<waluta>PLN</waluta>
<homologacja>TAK</homologacja>
<ilosc_drzwi>2/3</ilosc_drzwi>
<uszkodzony>NIE</uszkodzony>
<wojewodztwo>małopolskie</wojewodztwo>
<opis>
<![CDATA[
jakiś dłuugi przykłądowy opis lorem ipsum dolores et ames
]]>
</opis>
<historia>;bezwypadkowy;garażowany;I właściciel;serwisowany;</historia>
<wyposazenie>
;ABS;alarm;alufelgi;centr. zamek;el. lusterka;el. szyby;immobiliser;klimatyzacja;nawigacja;pełna opcja;poduszki;radio z CD;skóra;szyberdach;wsp. kierownicy;
</wyposazenie>
<zdjecia>
<zdjecie>
</zdjecie>
<zdjecie>
</zdjecie>
</zdjecia>
</ogloszenie>
</import>
</moto>
Kod parsera mam taki:
$reader = new XMLReader();
$reader->open("$sciezkaSL");
$count=0;
while($reader->read())
{
if($reader->nodeType == XMLReader::ELEMENT)
{
$name = $reader->name;
if ($reader->name == 'ogloszenie')
{
$notes[$count] = array(); }
if ($reader->name == 'zdjecia')
{
$notes[$count][$name] = array(); }
}
if($reader->nodeType == XMLReader::TEXT || $reader->nodeType == XMLReader::CDATA)
{
$notes[$count][$name] = trim($reader->value); }
if($reader->nodeType == XMLReader::END_ELEMENT)
{
if ($reader->name == 'ogloszenie')
{
$count++;
}
}
}
I tu jest problem w wyniku otrzymuje tylko jedno ścieżke do zdjęcia, tablica zdjęć tworzy się ale nie zapełnia, wynikowa tablica ogółu wygląda tak:
(
(
[ofertaid] => 89717
[status] => 1
[rodzaj] => osobowy
[kolor] => pomaraĹczowy met.
[marka] => Dacia
[model] => Duster
[nadwozie] => kombi
[typsilnika] => benzyna+lpg
[pojemnosc] => 3424
[moc] => 234
[przebieg] => 345234
[rok_produkcji] => 1990
[cena_brutto] => 34554
[waluta] => PLN
[homologacja] => TAK
[ilosc_drzwi] => 2/3
[uszkodzony] => NIE
[wojewodztwo] => maÄšâopolskie
[opis] => jakiĹ dĹuugi przykĹÄ
dowy opis lorem ipsum dolores et ames
[historia] => ;bezwypadkowy;garaĹźowany;I wĹaĹciciel;serwisowany;
[wyposazenie] => ;ABS;alarm;alufelgi;centr. zamek;el. lusterka;el. szyby;immobiliser;klimatyzacja;nawigacja;peĹna opcja;poduszki;radio z CD;skĂłra;szyberdach;wsp. kierownicy;
(
)
[zdjecie] => [url="http://www.jakisadres.pl/photos53b1e73e11929c5b8162i34rugd43247yg.jpg"]http://www.jakisadres.pl/photos53b1e73e119...rugd43247yg.jpg[/url]
)
)
Mógłby ktoś pomóc ? naprowawdzić/poprawić kod parsera ? Pierwszy raz używam tej biblioteki i jestem zielony
Pozdrawiam
Ten post edytował gingersrlz 25.08.2011, 16:34:50