test.htmlCosa sto facendo male con xpath?
<html>
<body>
<span> hello Joe</span>
<span> hello Bob</span>
<span> hello Gundam</span>
<span> hello Corn</span>
</body>
</html>
file 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);
Sto cercando di usare XPath per trovare le campate e then echo, ma a quanto pare non posso eco esso. Ho provato di dumping per vedere se sta valutando correttamente, e non sono sicuro che cosa significa questo in uscita:
object(DOMElement)#4 (0) { }
object(DOMNodeList)#7 (0) { }
ciò che fa la #4
e #7
significa e che cosa significa la parentesi; Che cosa significa la sintassi?
Aggiornamento: Questo è l'errore che ottengo quando provo a echo $retrieve_data;
e $retrieve_data->item(1);
Catchable fatal error: Object of class DOMNodeList could not be converted to string
Non è una risposta alla tua domanda, ma ci sono le librerie DOM PHP che permettono l'esecuzione di query gli oggetti il modo in jQuery che si sente molto più naturale per me che XPath. Io * odio * XPath. [PHPQuery] (http://code.google.com/p/phpquery/) utilizza il DOM PHP - esempi [qui] (http://phpquery-library.blogspot.com/); [SimpleHTMLDOM] (http://simplehtmldom.sourceforge.net/) è basato su stringhe ma anche molto bello. –
Non conosco la sintassi XPath di PHP, ma hai provato "// span/text()"? Al momento, stai selezionando gli elementi, ma vuoi produrre il testo all'interno degli elementi. –
@chris_l Non è ** sintassi XPath ** di PHP. È solo XPath. Lo stesso in qualsiasi altra lingua, solo che PHP supporta solo XPath 1.0. @Doug la tua domanda non ha nulla a che fare con XPath. Stai chiedendo come leggere l'output standard 'var_dump'. – Gordon