test.htmlTôi đang làm gì sai với xpath?
<html>
<body>
<span> hello Joe</span>
<span> hello Bob</span>
<span> hello Gundam</span>
<span> hello Corn</span>
</body>
</html>
PHP tập tin
$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);
Tôi cố gắng để sử dụng XPath để tìm ra nhịp và sau đó echo nó, nhưng có vẻ như tôi không thể echo nó. Tôi đã cố gắng bán phá giá nó để xem nếu được đánh giá đúng, và tôi không chắc chắn những gì hiện ra này có nghĩa là:
object(DOMElement)#4 (0) { }
object(DOMNodeList)#7 (0) { }
Gì #4
và #7
nghĩa và những gì không ngoặc có ý nghĩa; Cú pháp có ý nghĩa gì?
Cập nhật: Đây là lỗi tôi nhận được khi tôi cố gắng echo $retrieve_data;
và $retrieve_data->item(1);
Catchable fatal error: Object of class DOMNodeList could not be converted to string
Không phải là câu trả lời cho câu hỏi của bạn, nhưng có PHP thư viện DOM cho phép truy vấn các đối tượng cách jQuery mà cảm thấy tự nhiên hơn nhiều với tôi hơn XPath. Tôi * ghét * XPath. [PHPQuery] (http://code.google.com/p/phpquery/) sử dụng PHP DOM - các ví dụ [ở đây] (http://phpquery-library.blogspot.com/); [SimpleHTMLDOM] (http://simplehtmldom.sourceforge.net/) là chuỗi dựa nhưng cũng rất đẹp. –
Tôi không biết cú pháp XPath của PHP, nhưng bạn đã thử "// span/text()" chưa? Hiện tại, bạn đang chọn các phần tử, nhưng bạn muốn xuất văn bản bên trong các phần tử. –
@chris_l Nó không phải ** Cú pháp XPath ** của PHP. Nó chỉ là XPath. Tương tự với bất kỳ ngôn ngữ nào khác, chỉ PHP đó mới hỗ trợ XPath 1.0. @ Doug câu hỏi của bạn không liên quan gì đến XPath. Bạn đang hỏi làm thế nào để đọc đầu ra 'var_dump' chuẩn. – Gordon