2011-06-07 86 views
0

我有一个奇怪的XML文件,我试图解析。XML jquery解析帮助

<Data> 
<Row> 
<Field name = "whatever" pos ="1">STUFF</Field> 
<Field name = "whatever2" pos ="2">MORE STUFF</Field> 
<Field name = "whatever3" pos ="3">EVEN MORE STUFF</Field> 
</Row> 
<Row> 
<Field name = "whatever" pos ="1">Different STUFF</Field> 
<Field name = "whatever2" pos ="2">MORE Different STUFF</Field> 
<Field name = "whatever3" pos ="3">EVEN MORE Different STUFF</Field> 
</Row> 
</Data> 

我试图通过使用“行”的工作,但如何调用单个字段名称获取数据?在萤火虫中,它们全都看起来像“田野”。我试过了:

myvalue : $("whatever", this).text() 

但是这并没有抓住它。

感谢


从下面留言代码:

function callAjax(url) { 
    $.ajax({ 
     url: url, 
     dataType: "xml", 
     success: function (xmlResponse) { 
      $.merge(data1, $("ROW", xmlResponse).map(returnResults).get()); 
     } // end of success }); } 

function returnResults() { 
    formatedURL = $('Field[name="EL_VALUES_FIELD2"]', this).text(); 
    return { 
     value: $('Field[name="EL_VALUES_FIELD1"]', this).text(), 
     label: $('Field[name="EL_VALUES_FIELD1"]', this).text() + " " + $("EL_VALUES_FIELD4", this).text(), 
     title: $('Field[name="EL_VALUES_FIELD1"]', this).text(), 
     url: formatedURL, 
     description: $('Field[name="EL_VALUES_FIELD3"]', this).text(), 
     keywords: $('Field[name="EL_VALUES_FIELD4"]', this).text() 
    }; 
} 

回答

1

您可以用attribute equals selector [attrname="value"]做到这一点。例如:

$('Row', this).eq(0).find('Field[name="whatever2"]').text() 

此发现Field元件,其名称是whatever2第一(索引0)元件内。

+0

这对XML是否真的有用? – Niklas 2011-06-07 17:24:55

+0

@Niklas是的。 [jsFiddle](http://jsfiddle.net/3vfQ8/) – lonesomeday 2011-06-07 17:27:55

+0

有没有办法做到这一点没有索引?我正在将所有这些编译到自动完成搜索栏的对象中。我正在处理这个问题: – Specked 2011-06-07 17:47:21