【发布时间】:2013-05-27 19:47:57
【问题描述】:
我遇到了 XPath 查询问题。我正在使用//link[@rel='alternate'],但这会返回一个空节点集。我正在尝试编写一个查询,该查询将为 rel=alternate
我做错了什么?
下面是我正在使用的 xml 结构的简化示例。
<feed>
<entry>
<id>1980475</id>
<link rel="post" href="http://..."></link>
<link rel="edit" href="http://..."></link>
<link rel="alternate" href="http://..."></link>
</entry>
<entry>
<id>1980476</id>
<link rel="post" href="http://..."></link>
<link rel="edit" href="http://..."></link>
<link rel="alternate" href="http://..."></link>
</entry>
</feed>
这也是我正在使用的 php 代码:
$xmlDoc = simplexml_load_file("somefile.xml");
$nodelist = $xmlDoc->xpath("//link[@rel='alternate']");
【问题讨论】:
-
您能否也发布您当前正在尝试使用的代码?
-
//link[@rel='alternate']$xmlDoc = simplexml_load_file("filepath.xml"); $nodelist = $xmlDoc->xpath("//link[@rel='alternate']); -
我试过你的代码,
count($xml->xpath('//link[@rel="alternate"]'))返回 2,这是正确的:3v4l.org/iG8o8 -
我敢打赌,您的实际 XML 中有一些命名空间声明。在发送 XPath 查询之前注册它们。