Frage

Ich habe versucht, einen PHP-Skript zu schreiben, ein XML-Dokument zu analysieren, mit DOMXPath ; aber es scheint, ich bin etwas fehlt, weil keiner meiner XPath-Abfragen etwas zurückgeben. So hat ich über meinen Skript zu Wasser versuchte, ein sehr rudimentäres XML-Dokument zu versuchen und zu analysieren, und das ist auch nicht arbeiten. Ich habe dieses Skript basiert weg von diesem XPath Beispiel .

<?php

$xml  = '<?xml version="1.0" encoding="ISO-8859-1"?>';
$xml .= '<bookstore>';
$xml .= '<book category="COOKING">';
$xml .= '<title lang="en">Everyday Italian</title>';
$xml .= '<author>Giada De Laurentiis</author>';
$xml .= '<year>2005</year>';
$xml .= '<price>30.00</price>';
$xml .= '</book>';
$xml .= '</bookstore>';

$dom = new DOMDocument('1.0');
$dom->loadXML($xml);

$xpath = new DOMXPath($dom);
$result = $xpath->query('/bookstore/book[1]/title');
var_dump($result);

?>

Das Problem ist, dass mein var_dump von $ result immer kehrt so etwas wie:

object(DOMNodeList)#4 (0) { }

... darauf hinweist, dass es nichts gefunden.

War es hilfreich?

Lösung

In diesem Fall wird die Ausgabe von var_dump () ist irreführend. Versuchen

foreach($result as $e) {
  echo $e->nodeValue;
}

oder

echo $result->length;

statt.

z. mit Ihrem Code (bis $ result = $ XPath ....) +

echo phpversion(), "\n";
var_dump($result);
echo $result->length, "\n";
foreach($result as $e) {
  echo $e->nodeValue;
}

ist der Ausgang

5.3.1
object(DOMNodeList)#4 (0) {
}
1
Everyday Italian

Andere Tipps

Ich habe mit einem doc gerungen, der angibt, xmlns = „http://www.w3.org/2005/Atom“ im Root-Knoten. Nahm es heraus, und XPath funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top