gpt4 book ai didi

javascript - jQuery XML : Count number of leaf nodes

转载 作者:行者123 更新时间:2023-11-28 16:33:38 25 4
gpt4 key购买 nike

如何使用 jQuery 计算特定 XML 节点的叶节点数量?所讨论的 XML 看起来与此类似。我希望所有叶节点都来自 <Errors>节点。

<Errors>
<ErrorParentCat>
<ErrorTag/>
<ErrorTag2/>
</ErrorParentCat>
</Errors>

在这个例子中我想要 <ErrorTag/><ErrorTag2/>只算了。因此结果应该是 2 。另外<ErrorParentCat>是一个示例标签, <Errors> 中可能有很多标签具有不同的名称。

一旦我有了数字,如果可能的话,我也想要这些叶节点的列表。

最佳答案

假设您已经有一个名为 xmlXMLDocument:

var $xml = $(xml),
count = $xml.find('*').filter(function ()
{
return $(this).children().length === 0;
}).length;
console.log(count);

您还可以将 XML 字符串直接传递给 jQuery 函数:

var $xml = $('<Errors><ErrorParentCat><ErrorTag/><ErrorTag2/></ErrorParentCat></Errors>');
// the rest is the same

jsfiddle demo →

<小时/>

编辑您说过您想要这些叶节点的列表。在上面的代码中,您已经得到了它们:

var $xml = /* whatever */,
$leafNodes = $xml.find('*').filter(function ()
{
return $(this).children().length === 0;
}),
count = $leafNodes.length;

编辑 #2 正如 Tim Down 所指出的(请参阅下面的评论),您不能只将 XML 字符串传递给 $()在 IE 中(!@#$ing IE)。您应该使用 jQuery 1.5 函数 $.parseXML()将任意格式良好的 XML 字符串解析为 XMLDocument:

var xmlDoc = $.parseXML('<Errors><ErrorParentCat><ErrorTag/><ErrorTag2/></ErrorParentCat></Errors>'),
$xml = $(xmlDoc);
/* the rest is unchanged */

new jsfiddle demo →

关于javascript - jQuery XML : Count number of leaf nodes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4865058/

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