gpt4 book ai didi

php 计算 xml 元素

转载 作者:可可西里 更新时间:2023-10-31 22:54:17 24 4
gpt4 key购买 nike

您好,计算 XML 文件中元素数量的最佳方法是什么?在我的例子中,我想计算标签“OfferNameList”中名称为“OfferName”的 XML 标签的数量。

下面的 XML 包含在一个 php 变量 $offers 中

$offers = '<OfferNameList>
<OfferName>...</OfferName>
<OfferName>...</OfferName>
<OfferName>...</OfferName>
...
</OfferNameList>';

感谢帮助

最佳答案

DOM你可以使用

$dom->getElementsByTagName('OfferName')->length;

计算仅所有 OfferName 元素length is an attribute of DOMNodeList.

要统计 OfferNameList 中的所有 OfferName 元素,您可以使用 DOMXPath::evaluate

$xpath->evaluate('count(//OfferNameList/OfferName');

请注意,within 在这里有些不准确,因为 XPath 查询将只考虑直接子项。如果您在 OfferNameList 元素下方的任何位置需要 OfferName 元素,请调整您的问题。

另请注意,// 将查询文档中的任何位置,这对于大型文档可能效率较低。如果您知道 OfferNameList 元素仅出现在 XML 中的特定位置,请使用直接路径。


完整的工作示例 ( run on codepad ):

$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 elements
echo $dom->getElementsByTagName('OfferName')->length, PHP_EOL; // 6

// count all OfferNameList/OfferName elements
$xp = new DOMXPath($dom);
echo $xp->evaluate('count(//OfferNameList/OfferName)'); // 3

关于php 计算 xml 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4386465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com