2017-09-26 14 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

- あなたは ''数(/ 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 
のXPathで

Demo

関連する問題