Witam.
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:
(
[1] => Array
(
[WOJ] =>
[POW] =>
[GMI] =>
[RODZ] =>
[NAZWA] =>
[NAZDOD] =>
[STAN_NA] =>
)
[2] => Array
(
[WOJ] =>
[POW] =>
[GMI] =>
[RODZ] =>
[NAZWA] =>
[NAZDOD] =>
[STAN_NA] =>
)
)
w dalszym ciągu nie znalazłem rozwiązania, ktoś ma pomysły? :-/