Håller på med att få min PHP fil att förstå vad jag vill ha ut från en XML fil grejen är väl att DOM sparar text i ett skilt TextElement och inte direkt under noden du förväntar dej. Tack Simon för ditt snabba svar. Någonting är wacko: Tack Jones.PHP med XML och XPath
Så här ser PHP koden ut
<code>
<?php
$doc = new DOMDocument;
$doc->preserveWhiteSpace = false;
$doc->load('xmldatabas.xml');
$xpath = new DOMXPath($doc);
$tbody = $doc->getElementsByTagName('underkategori')->item(0);
// our query is relative to the tbody node
$query = 'kategori/katnr[. = "1"]';
$entries = $xpath->query($query, $tbody);
foreach ($entries as $entry) {
echo " by {$entry->undermeny->nodeValue}\n";
}
?>
</code>
och så här ser XML filen ut
<code>
<underkategori>
<kategori>
<katnr>1</katnr>
<undermeny>till sida 1</undermeny>
<lankid>1</lankid>
</kategori>
<kategori>
<katnr>1</katnr>
<undermeny>till sida 2</undermeny>
<lankid>2</lankid>
</kategori>
<kategori>
<katnr>2</katnr>
<undermeny>till sidan 3</undermeny>
<lankid>3</lankid>
</kategori>
</underkategori>
</code>
Jag ser att den loopar två gånger så jag vet att den tar rätt men den visar inget?
Har alltså problem med att visa de noddar jag vill ha (i detta fall undermeny och lankidSv: PHP med XML och XPath
så du vill antagligen ha nåt i stil med
echo " by {$entry->undermeny->firstChild->nodeValue}\n";
med reservation för syntaxen, har inte pysslat med xml i php på väldigt länge...
Sv:PHP med XML och XPath
Tyvärr så var det inte det rätta.
Jag fick inget fel medelande och den loopade två gånger men det skrev inte ut något.Sv: PHP med XML och XPath
Prova med :
echo " Undermeny: {$entry->nextSibling->nextSibling->nodeValue}</br>".
" Länkid: {$entry->nextSibling->nextSibling->nextSibling->nodeValue}</br>";
Undermenyrna skrivs ut men inte Länkidet, fråga mig ej varför.
En liten hjälp på vägen månne.
Sv:PHP med XML och XPath
Du hade gjort helt rätt bara att du tog fel på vad som visades :)
I ditt exempel så var det Länkid och inte undermenyn som visades så jag ändrade lite
<code>
echo " Undermeny: {$entry->nextSibling->nodeValue}</br>".
" Länkid: {$entry->nextSibling->nextSibling->nodeValue}</br>";
</code>
Så nu fungerar det :D
Tack än en gång till er alla.