为什么XPath count()在PHP中对我不起作用?

为什么XPath count()在PHP中对我不起作用?,php,html,xml,xpath,count,Php,Html,Xml,Xpath,Count,我试图使用XPath从文档中获取所有节标题元素(H1,H2,H3,H4,H5,H6)的数量,例如: $headerCount=$xpath->query("count(//*[self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6])"); 我使用此示例对上面的查询进行了测试,结果为“6”: <h2>Header 1</h2> <h2>Header 2</

我试图使用XPath从文档中获取所有节标题元素(
H1
H2
H3
H4
H5
H6
)的数量,例如:

    $headerCount=$xpath->query("count(//*[self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6])"); 
我使用此示例对上面的查询进行了测试,结果为“6”:

<h2>Header 1</h2>
<h2>Header 2</h2>
<h3>Header 2.1</h3>
<h4>Header 2.1.1</h4>
<h2>Header 3</h2>
<h3>Header 3.1</h3>
我得到这个错误:

未定义属性:DOMNodeList::$textContent

DOMNodeList
建议有一个节点列表,但我认为它只是一个数值,例如所有头的数量为6


谁能告诉我如何才能得到文档中所有标题的数量?

您的XPath很好;需要调整的是您的PHP(如Alejandro)

使用而不是:

然后,
$headerCount
将只是一个数值,如预期的那样,所有头的数量都是6。

请注意,根据DOMXPath::query只返回DOMNodeList。
echo "count: ".$headerCount->textContent;
$headerCount=$xpath->evaluate("count(//*[self::h1 or self::h2 or self::h3 or self::h4 or self::h5 or self::h6])");