Matthias: Verzweifele mit dom xpath->query

Beitrag lesen

Hallo,

nach vielem hin und her habe ich nun eine Lösung gefunden:

Man muss einen Default-Namespace definieren.

  
$xpath = new DOMXPath($domdoc);  
$query = '/child::*[1]/info/title';  
  
$entries = $xpath->query($query);  
  
echo "<br>--->".$entries->item(0)->nodeName;  
echo "<br>--->".$entries->item(0)->nodeValue;  

liefert kein Ergebnis, egal welche Deklarationen man in der xml hinzufügt oder weglässt.

  
$xpath = new DOMXPath($domdoc);  
$xpath->registerNamespace("default","http://docbook.org/ns/docbook");  
  
$query = '/child::*[1]/default:info/default:title';  
  
$entries = $xpath->query($query);  
  
echo "<br>--->".$entries->item(0)->nodeName;  
echo "<br>--->".$entries->item(0)->nodeValue;  

liefert hingegen das gewünschte Ergebnis.

Statt default kann man auch fizzlibuzzli oder sonstwas eingeben, hauptsache man hat einen default-ns definiert.

Vielleicht hilft dies irgendwem etwas weniger Frust aufzubauen als ich.

Gruß

Matthias