Autor Zpráva
nightx
Profil *
Ahojky lidickove snad si stimto nekdo poradi :

Potrebuju naparsovat xml,,,
kdyz je v xml
<name>nazev</name>
<description>popisek</description>

ovsem problem je vtom kdyz je tam
<category id="290" id_parent="635">
a to nevim jak natahnout .....

ukazka zdrojaku :
- <category_list>
- <category id="635" id_parent="0">
<name>stanice</name>
<description />
<flag active="" position="" />
</category>
- <category id="290" id_parent="635">
<name>meteo stanice</name>
<description />
<flag active="" position="" />
</category>
- <category id="346" id_parent="635">
<name>teplomery</name>
<description />
<flag active="" position="" />
</category>
- </category_list>



Pouzivam k parsovani tohle :

$doc = new DOMDocument;
$doc->load('vypis.xml');

$xpath = new DOMXPath($doc);

foreach ($xpath->query('//category_list//category') as $item) {
$id = $xpath->query('category', $item)->item(0)->nodeValue; <- <- <- toto nevim jak nacist
$nadid = $xpath->query('id_parent', $item)->item(0)->nodeValue; <- <- <- toto nevim jak nacist
$name = $xpath->query('name', $item)->item(0)->nodeValue;

echo "$id - $nadid - $name<br />";
}
Tomáš Hanus
Profil
A co attribute name="id" a attribute name="id_parent"
nightx
Profil *
myslis jako takto ? $id = $xpath->query('category="id"', $item)->item(0)->nodeValue;
to nefunguje,, uz jsem zkousel snad vsechmo ....
Tomáš Hanus
Profil
<category id="290" id_parent="635">
pomocí xsl vytáhneš id <xsl:attribute name="id">, ale musíš být v tom správném stromě. Ty to nenačítáš z podkategorií IMHO, což je chyba.
nightx
Profil *
no a jak nato ? jak tothle upravit aby se to dokazalo nacist,,
a uz jsem ztoho v koncich :(

<?
$doc = new DOMDocument;
$doc->load('vypis.xml');

$xpath = new DOMXPath($doc);

foreach ($xpath->query('//category_list//category') as $item) {
$id = $xpath->query('category', $item)->item(0)->nodeValue; <- <- <- toto nevim jak nacist
$nadid = $xpath->query('id_parent', $item)->item(0)->nodeValue; <- <- <- toto nevim jak nacist
$name = $xpath->query('name', $item)->item(0)->nodeValue;

echo "$id - $nadid - $name<br />";
}
?>
nightx
Profil *
Nebo nevite jak to jinak naparsovat abych to dokazal nejak rozumne vypsat a nasledne stim dal pracovat ?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: