jQuery XML解析/遍历

我有以下XML-

<行>
<行id=“5”>
<电池>项目1&lt/电池>
<attrs>
<attr>
<id>1&lt/id>
<类型>复选框&lt/类型>
<价值观>
<价值>
<id>10&lt/id>
&lt/价值>
<价值>
<id>11&lt/id>
&lt/价值>
&lt/价值观>
&lt/attr>
<attr>
<id>2&lt/id>
<类型>复选框&lt/类型>
<价值观>
<价值>
<id>20&lt/id>
&lt/价值>
<价值>
<id>21&lt/id>
&lt/价值>
&lt/价值观>
&lt/attr>
&lt/attrs>
&lt/世界其他地区>
&lt/行>

我想做的是循环某一行的每一行

我试图这样做是为了得到所有的attr id,但我也得到了id的值

函数填充形式(id){
var theRow=$(theXmlDoc.find('row[id='+id+']).get()
$(theRow).find(“attr”).each(函数(i)
{
警报($(this.find(“id”).text());
});
}

我还想指出,主要目标是循环每个attr,然后在我有attr的id时循环每个值

如果你想到一个更容易/更简单的方法来与其他图书馆合作,我愿意听取你的建议

提前感谢,

我不清楚你想循环什么,我想你问题中的一个标签是乱码。你说:“我想做的是循环某一行的每一行。”我想你在那里有一个标签

无论如何,这里有一些使用jQuery从解析的xml文档中提取数据的示例。注释显示了将发出的警报

我认为问题的一部分是您将id值作为属性的同级而不是子级。似乎更连贯的结构可能是:

<行>
<行id=“5”>
<电池>项目1&lt/电池>
<attrs>
<attr id=“1”>
<类型>复选框&lt/类型>
<价值观>
<价值>
<id>10&lt/id>
&lt/价值>
<价值>
<id>11&lt/id>
&lt/价值>
&lt/价值观>
&lt/attr>
<attr id=“2”>
<类型>复选框&lt/类型>
<价值观>
<价值>
<id>20&lt/id>
&lt/价值>
<价值>
<id>21&lt/id>
&lt/价值>
&lt/价值观>
&lt/attr>
&lt/attrs>
&lt/世界其他地区>
&lt/行>

但如果您无法控制xml,请忽略该建议。:-)

好的,下面是一些用于获取各种数据的遍历示例:

首先让我们看一下“项目1”

<script type=“text/javascript”>
//项目1
$.get('sample.xml',null,函数(数据,文本状态){
警报($(数据).find('rows-row[id=5]单元格').text());
}“xml”);
&lt/脚本>

现在我们将得到1和2:

<script type=“text/javascript”>
// 1
// 2
$.get('sample.xml',null,函数(数据,文本状态){
$(数据).find('rows row[id=5]attrs attr>id')。每个(函数(){
警报($(this.text());//1,2
});
}“xml”);
&lt/脚本>

最后,让我们取出主属性ID并将它们绑定到值中:

<script type=“text/javascript”>
//行行[id=5]属性属性>id 1的内部id为10,11
//行行[id=5]属性属性>id 2的内部id为20,21
$.get('sample.xml',null,函数(数据,文本状态){
var out=''
$(数据).find('rows row[id=5]attrs attr>id')。每个(函数(){
out+='rows row[id=5]attrs attr>id'+$(this.text();
var innerIds=[];
$(this).同级('value').find('value id').each(函数(){
innerIds.push($(this.text())
});
out+='的内部ID为'+innerID.join(',)+'\n';
});
警惕(出去);
}“xml”);
&lt/脚本>

发表评论