gpt4 book ai didi

php - xpath 我做错了什么?

转载 作者:可可西里 更新时间:2023-11-01 13:57:59 24 4
gpt4 key购买 nike

测试.html

<html>
<body>
<span> hello Joe</span>
<span> hello Bob</span>
<span> hello Gundam</span>
<span> hello Corn</span>
</body>
</html>

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);

我正在尝试使用 xPath 找到跨度然后回显它,但似乎我无法回显它。我尝试转储它以查看评估是否正确,但我不确定此输出是什么意思:

object(DOMElement)#4 (0) { } 
object(DOMNodeList)#7 (0) { }

#4#7 是什么意思,括号是什么意思;语法是什么意思?

更新:这是我在尝试 echo $retrieve_data;$retrieve_data->item(1);

时遇到的错误
Catchable fatal error: Object of class DOMNodeList could not be converted to string

最佳答案

$xpath->evaluate("//span");

如果可能则返回输入结果或 DOMNodeList包含匹配给定 XPath 表达式的所有节点。在您的例子中,它返回一个 DOMNodeList,因为您的 XPath 求值为四个 DOMElements。 , 这是专门的 DOMNodes .在使用任何 XML(无论使用何种语言)时,了解节点概念至关重要。

echo $retrieve_data->item(1);

无法工作,因为DOMNodeList::item在您的情况下返回一个 DOMNode 更具体地说是一个 DOMElement 。你不能在 PHP 中 echo 任何类型的对象,如果它们没有实现 __toString()方法。 DOMElement 没有。 DOMNodeList 也没有。因此,您会收到无法将对象转换为字符串的 fatal error 。

要获取 DOMElement 的值,您可以阅读它们的 nodeValuetextContent .

我的一些 DOM 示例:https://stackoverflow.com/search?q=user%3A208809+dom

关于php - xpath 我做错了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3596807/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com