test.html¿Qué estoy haciendo mal con xpath?
<html>
<body>
<span> hello Joe</span>
<span> hello Bob</span>
<span> hello Gundam</span>
<span> hello Corn</span>
</body>
</html>
archivo 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);
Estoy tratando de utilizar XPath para encontrar las luces y luego echo, pero parece que no puedo repetir la misma. He intentado deshacerse de ellos para ver si está evaluando adecuadamente, y no estoy seguro de lo que quiere decir esto de salida:
object(DOMElement)#4 (0) { }
object(DOMNodeList)#7 (0) { }
lo que hace el #4
y #7
significa y qué significa el paréntesis; ¿Qué significa la sintaxis?
Actualización: Este es el error que consigo cuando intento echo $retrieve_data;
y $retrieve_data->item(1);
Catchable fatal error: Object of class DOMNodeList could not be converted to string
No es una respuesta a su pregunta, pero hay bibliotecas DOM PHP que permiten consultar objetos de la manera jQuery que se siente mucho más natural para mí que XPath. Yo * odio * XPath. [PHPQuery] (http://code.google.com/p/phpquery/) utiliza el PHP DOM - ejemplos [aquí] (http://phpquery-library.blogspot.com/); [SimpleHTMLDOM] (http://simplehtmldom.sourceforge.net/) está basado en cadenas pero también es muy agradable. –
No conozco la sintaxis XPath de PHP, pero ¿has probado "// span/text()"? Actualmente, está seleccionando los elementos, pero desea generar el texto dentro de los elementos. –
@chris_l No es ** PHP ** sintaxis XPath. Es solo XPath. Lo mismo en cualquier otro idioma, solo que PHP solo es compatible con XPath 1.0. @Doug tu pregunta no tiene nada que ver con XPath. Usted está preguntando cómo leer la salida estándar 'var_dump'. – Gordon