borykam się z problemem, mianowicie próbuję dobrać się do takiego pliku XML
<?xml version="1.0" encoding="UTF-8"?> <teryt> <catalog name="TERC" type="all" date="2010-01-01"> <row> <col name="WOJ">02</col> <col name="POW"/> <col name="GMI"/> <col name="RODZ"/> <col name="NAZWA">DOLNOŚLĄSKIE</col> <col name="NAZDOD">województwo</col> <col name="STAN_NA">2010-01-01</col> </row> <row> <col name="WOJ">02</col> <col name="POW">01</col> <col name="GMI"/> <col name="RODZ"/> <col name="NAZWA">bolesławiecki</col> <col name="NAZDOD">powiat</col> <col name="STAN_NA">2010-01-01</col> </row> </catalog> </teryt>
Chcę poprostu zrobić tablicę asocjacyjną, zawierającą wszystkie wpisy (tabela[index][wartosc_atrybutu_name] = wartosc)
i nie mogę sobie poradzić, o ile potrafię pobrać każdą wartość atrybutu NAME, to już nie potrafię całej wartości danego NODE-a pobrać (np "bolesławiecki").
siedzę od wczoraj, pomysłów mi brak, mogłby mi ktoś nasunąc jakieś pomysły na rozwiązanie?
index.php
<?php $reader = new XMLReader(); $reader->open('TERC.xml'); $count = 0; while($reader->read()) { // GDY rozpoczyna się ROW if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "row") { $count++; } // zbieranie atrybutów COL if($reader->nodeType == XMLReader::ELEMENT && $reader->name == "col") { if($reader->hasAttributes) { $tabela[$count][$reader->getAttribute("name")] = $reader->value; } //echo "<br />"; } } ?>
a efekt działań jest taki:
w dalszym ciągu nie znalazłem rozwiązania, ktoś ma pomysły? :-/