我有一个像这样的 XML
<resultGroups>
<subGroups>
<results> </results>
<results> </results>
</subGroups>
<subGroups>
<results> </results>
<results> </results>
</subGroups>
<name> </name>
</resultGroups>
<resultGroups>
<subGroups>
<results> </results>
<results> </results>
</subGroups>
<subGroups>
<results> </results>
<results> </results>
</subGroups>
<name> </name>
</resultGroups>
我有这段代码来选择每个结果组内的结果数量
$('resultGroups', $(xml)).each(function() {
count = $('results', this).length;
arr[i] = count;
i++;
});
我想要的是从每个 resultGroup 标记中获取名称并将其存储在数组中。
我怎样才能在上面的代码中做到这一点?
如何在没有 .each 函数的情况下仅选择第一个结果组的名称标签?
最佳答案
如果您的 XML 如下所示:
<resultGroups>
<subGroups>
<results> </results>
</subGroups>
<subGroups>
<results> </results>
</subGroups>
<name>myname</name>
</resultGroups>
<resultGroups>
<subGroups>
<results> </results>
<results> </results>
</subGroups>
<subGroups>
<results> </results>
<results> </results>
</subGroups>
<name>othername</name>
</resultGroups>
使用此代码:
var groups = {};
$('resultGroups', $(xml)).each(function() {
var count = $('results', this).length;
var name = $('name',this).text();
groups[name] = count;
});
之后,组将成为一个字典(对象,因此是 {}),如下所示:
{'myname': 2, 'othername': 4}
您可以通过执行groups.myname
或groups['myname']
来访问它
要直接在 resultGroups 标签中获取名称标签 - 我在示例代码中没有看到任何其他标签,所以我不知道还有更多 - 请改用此代码:
var name = $(this).children('name').text();
关于javascript - Jquery XML 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/985908/