我有一个通用的xml,如下所示
<Results>
<Columns>
<Column>Center ID</Column>
<Column>Center Name</Column>
/Columns>
<Result>
<Data>32452368</Data>
<Data>Center1</Data>
</Result>
<Result>
<Data>32452368</Data>
<Data> Center2</Data>
</Result>
</Results>
我正在尝试使用jquery从这个xml中读取数据。
$(xml).find("Results/Result").each(function()
{
}
但我需要知道一些方法,按顺序阅读它们,就像第一个数据总是中心ID一样。 任何建议......
谢谢,
答案 0 :(得分:1)
你在右边,each
方法迭代jQuery对象,按顺序为每个匹配的元素执行一个函数,但是find
方法中选择器的语法不正确,试试这个:
$(xml).find('Results > Result').each(function(){
// do something here
})
答案 1 :(得分:0)
这样的事情怎么样:
var columns = [];
// Go through the first Result tag and record the order of the columns:
$(xml).find('Results > Result:first').each(function() {
$(this).children('Data').each(function() {
columns.push( $(this).text() );
});
});
var results = [];
$(xml).find('Results > Result:not(:first)').each(function() {
// Result will map column names to values:
var result = {};
$(this).children('Data').each(function(i) {
result[ columns[i++] ] = $(this).text();
});
results.push(result);
});
// Now results is an array of objects:
// [
// { 'Center ID': 32452368', 'Center Name': 'Center1' },
// { 'Center ID': 32452368', 'Center Name': 'Center2' }
// ]
唯一让你走错路的是在你的选择器中使用/
,这不是一个有效的CSS / jQuery选择器。 >
用于表示父/子关系。 Results > Result
是关键。