jQuery的XML解析
问题描述:
我有这样jQuery的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>
我有这样的代码来选择内部结果的数量XML每个resultGroup
$('resultGroups', $(xml)).each(function() {
count = $('results', this).length;
arr[i] = count;
i++;
});
我想是从每个resultGroup标签获取名称并将其存储在一个数组中。
如何在上面的代码中做到这一点?
如何仅选择第一个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();
答
这对我来说非常有用!谢谢!!!
var groups = {};
$('resultGroups', $(xml)).each(function() {
var count = $('results', this).length;
var name = $('name',this).text();
groups[name] = count;
});
因为我没有名字......我用这个代码,而不是...两个不同阵列的数量和名称.... $( 'resultGroups',$(XML))。每个(函数(){ \t \t \t 变种\t计数= $( '结果',这一点)。长度; \t \t变种名称= $( '姓名',这一点)的.text(); \t \t resultGroupNames [I] =名称; \t \t resultsNo [i] = count; \t \t i ++; \t}); 我得到了正确的计数。但在名称的情况下,它将所有名称存储在resultGroup标签内....即名称标签inisde子组结果等..我只想要名称标签直接在resultGroup里面... – Andromeda 2009-06-12 10:13:20