2017-09-26 76 views
2

我想用xpath检查元素是否出现过多次。xpath - 检查元素是否不止一次出现

XML:

<XML> 
    <containers> 
     <container id="1"> 
     </container> 
     <container id="2"> 
     </container> 
    </containers> 
</XML> 

我用下面简单的XPath表达式

$xml->xpath('/XML/containers/container'); 

我试了一下:

Element='<container id="1"> 
     </container>' 
Element='<container id="2"> 
     </container>' 

但作为一个结果,我想是这样的数组就像

$containers = array('container', 'container'); 

我该如何归档?

+0

在XPath - 你可以使用'计数(/ XML /瓶/箱)',但不幸的是SimpleXML的不支持这种类型的表达(AFAIK) –

回答

2

你不需要一个数组来检查匹配的数量。中的XPath的只是count()结果,会给你你的电话号码:

$a = '<XML> 
<containers> 
    <container id="1"> 
    </container> 
    <container id="2"> 
    </container> 
</containers> 
</XML>'; 
$xml = simplexml_load_string($a); 
$containers = $xml->xpath('/XML/containers/container'); 
$totalContainers = count($containers); // 2 

Demo