test.htmlQu'est-ce que je fais de mal avec xpath?
<html>
<body>
<span> hello Joe</span>
<span> hello Bob</span>
<span> hello Gundam</span>
<span> hello Corn</span>
</body>
</html>
fichier PHP
$doc = new DOMDocument();
$doc->loadHTMLFile("test.html");
$xpath = new DOMXPath($doc);
$retrieve_data = $xpath->evaluate("//span");
echo $retrieve_data->item(1);
var_dump($retrieve_data->item(1));
var_dump($retrieve_data);
Je suis en train d'utiliser XPath pour trouver les travées puis l'écho, mais il semble que je ne peux pas l'écho. J'ai essayé de dumping pour voir si l'évaluation est bien, et je ne suis pas sûr de ce que cela signifie de sortie:
object(DOMElement)#4 (0) { }
object(DOMNodeList)#7 (0) { }
Que signifie le #4
et #7
signifie et qu'est-ce que la parenthèse signifie; Quelle est la signification de la syntaxe?
Mise à jour: Ceci est l'erreur que je reçois lorsque je tente de echo $retrieve_data;
et $retrieve_data->item(1);
Catchable fatal error: Object of class DOMNodeList could not be converted to string
Pas une réponse à votre question, mais il y a des bibliothèques PHP DOM qui permettent l'interrogation des objets comme jQuery qui me semble beaucoup plus naturel que XPath. Je * hais * XPath. [PHPQuery] (http://code.google.com/p/phpquery/) utilise PHP DOM - exemples [ici] (http://phpquery-library.blogspot.com/); [SimpleHTMLDOM] (http://simplehtmldom.sourceforge.net/) est basé sur une chaîne mais aussi très agréable. –
Je ne connais pas la syntaxe XPath de PHP, mais avez-vous essayé "// span/text()"? Actuellement, vous sélectionnez les éléments, mais vous souhaitez afficher le texte dans les éléments. –
@chris_l Ce n'est pas ** la syntaxe XPath ** de PHP. C'est juste XPath. Pareil dans n'importe quel autre langage, juste que PHP ne supporte que XPath 1.0. @Doug votre question n'a rien à voir avec XPath. Vous demandez comment lire la sortie 'var_dump' standard. – Gordon