与
DOM您可以使用
$dom->getElementsByTagName('OfferName')->length;
仅 计算 所有OfferName元素
。
length是的属性
DOMNodeList。
要计算 OfferNameList中的所有OfferName元素
,可以使用
DOMXPath::evaluate
$xpath->evaluate('count(//OfferNameList/OfferName');
请注意,由于XPath查询将仅考虑直接子级,因此in 内
有些不准确。如果您在OfferNameList元素下方的任何地方都需要OfferName元素,请调整您的问题。
另请注意,这
//将查询文档中的任何位置,这对于大型文档而言可能效率较低。如果您知道OfferNameList元素仅出现在XML中的某个位置,请使用直接路径。
完整的工作示例 (在键盘上运行):
$xml = <<< XML<root> <NotOfferNameList> <OfferName>...</OfferName> <OfferName>...</OfferName> <OfferName>...</OfferName> </NotOfferNameList> <OfferNameList> <OfferName>...</OfferName> <OfferName>...</OfferName> <OfferName>...</OfferName> </OfferNameList>;</root>XML;$dom = new DOMdocument;$dom->loadXml($xml);// count all OfferName elementsecho $dom->getElementsByTagName('OfferName')->length, PHP_EOL; // 6// count all OfferNameList/OfferName elements$xp = new DOMXPath($dom);echo $xp->evaluate('count(//OfferNameList/OfferName)'); // 3
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)