2014-12-02 33 views
0

我使用PHP XPath和试图让与我的XML与SCP开头的所有节点都是一样的节点:custom_labelPHP的XPath找到

我的XML是:

<entry> 
    <scp:availability>in stock</scp:availability> 
    <scp:price unit='USD'>8.99</scp:price> 
    <scp:custom_label_0>seasonal</scp:custom_label_0> 
    <scp:custom_label_1>clearance</scp:custom_label_1> 
    <scp:custom_label_2>holiday</scp:custom_label_2> 
    <scp:custom_label_3>sale</scp:custom_label_3> 
    <scp:custom_label_4>best seller</scp:custom_label_4> 
</entry> 

我试着使用:

$numEntries = $entry->getXpath()->query("//*[contains(.,'scp:custom_label')]")->length; 

我没有得到任何结果回来

我想看到$ numEntries等于5。

我很感激帮助。非常感谢您

+1

你的XML规范是坏的; ''应该是里面有多个元素的标签。 – 2014-12-03 14:40:42

回答

2

使用local-name()

$res = $xpath->query("//*[contains(local-name(),'custom_label')]"); 
+0

谢谢你的时间和你的回答。它让我走上了正确的道路 – user583576 2014-12-03 14:29:36

0

这为我工作

$xpath->query("//*[contains(local-name(),'custom_label')]"); 

谢谢tlenss

+0

如果你接受了另一个答案,那会更好,因为大部分答案都直接来自它。 – 2014-12-03 14:41:54