我试图找出某个节点是否有兄弟姐妹,如果有,我想知道这些兄弟姐妹是什么。
这可能吗?
为了选择一个节点的兄弟姐妹,您必须使用相应的 XPath 斧头。以下是如何选择节点的所有兄弟姐妹(忽略节点本身)
$siblings = $node->xpath('preceding-sibling::* | following-sibling::*');
这就是你所要做的。
我认为在这里使用 xpath 是最好的选择:
<?php
$string = <<<XML
<?xml version='1.0'?>
<document>
<title>Forty What?</title>
<from>Joe</from>
<to>Jane</to>
<body>
I know that's the answer -- but what's the question?
</body>
</document>
XML;
function get_all_siblings(SimpleXMLElement $node)
{
return $node->xpath('preceding-sibling::* | following-sibling::*');
}
$xml = simplexml_load_string($string);
foreach (get_all_siblings($xml->to) as $e)
echo $e->getName()."\n";
?>
结果是:
title
from
body
$xml = new SimpleXMLElement($xmlstr);
$xmlNode = $xml->xpath('root/yourNodeName');
$nodeCount = count($xmlNode);
不确定这对您是否仍然有用