我在使用CDATA字符串检索XML数据时遇到了一个小问题。
这是我的XML
<identifier rownumber="1">
<A.SOLUTION_ID>1001</A.SOLUTION_ID>
<A.LIBRARY_GROUP><![CDATA[Business Managment 1]]></A.LIBRARY_GROUP>
<A.LIBRARY_NAME><![CDATA[BM 01]]></A.LIBRARY_NAME>
</identifier>
<identifier rownumber="2">
<A.SOLUTION_ID>1002</A.SOLUTION_ID>
<A.LIBRARY_GROUP><![CDATA[Engineering]]></A.LIBRARY_GROUP>
<A.LIBRARY_NAME><![CDATA[ENG 05]]></A.LIBRARY_NAME>
</identifier>
我的Jquery代码
$.ajax({
type: "GET",
url: "http://myspace.com/external.xml",
dataType: "xml",
success: function parseXml(xml){
$(xml).find('identifier').each(function() {
var rownumber = $(this).attr('rownumber');
var A_LIBRARY_GROUP = $(this).find('A.LIBRARY_GROUP').text();
$("#output").append("Row Number: " + rownumber + "<br/>");
$("#output").append("A_LIBRARY_GROUP: " + A_LIBRARY_GROUP + "<br/><br/>-------------<br/>");
});
需要输出:
Row Number: 1
A_LIBRARY_GROUP: Business Managment 1
Row Number: 2
A_LIBRARY_GROUP: Engineering
我的问题:如何检索A.LIBRARY_GROUP和A.LIBRARY_NAME内容?它只显示一个空白数据。我只能检索ROW NUMBER
这是一个检索到的外部XML,因此“。”句点字符包含在XML名称中。 任何帮助将不胜感激。
感谢。
答案 0 :(得分:0)
示例 - jsFiddle
您的成功功能不需要名称,您不需要使用$.parseXML()
。如果您的ajax返回类型已经是XML并且使用XML MIME类型传输内容,则AJAX调用应该已经将其转换为XMLDoc。
不幸的是,看起来jQuery并不真正做 XML,只是HTML。您可以使用jQuery和本机节点遍历的混合来获取值,或者获取XML插件。
对于混合动力车,这应该有用......
$.ajax({
type: "GET",
url: "http://myspace.com/external.xml",
dataType: "xml",
success: function (xml) {
$(xml).find('identifier').each(function(i, o) {
var rownumber = $(o).attr('rownumber');
var A_LIBRARY_GROUP = o.getElementsByTagName('A.LIBRARY_GROUP')[0].textContent;
$("#output").append("Row Number: " + rownumber + "<br/>");
$("#output").append("A_LIBRARY_GROUP: " + A_LIBRARY_GROUP + "<br/><br/>-------------<br/>");
});
}
});
另外,为了防止您的XML示例是完整的XML,如果不包含在单个根元素中,它就是无效的。即
<somerootelement>
<identifier rownumber="1">
<A.SOLUTION_ID>1001</A.SOLUTION_ID>
<A.LIBRARY_GROUP><![CDATA[Business Managment 1]]></A.LIBRARY_GROUP>
<A.LIBRARY_NAME><![CDATA[BM 01]]></A.LIBRARY_NAME>
</identifier>
<identifier rownumber="2">
<A.SOLUTION_ID>1002</A.SOLUTION_ID>
<A.LIBRARY_GROUP><![CDATA[Engineering]]></A.LIBRARY_GROUP>
<A.LIBRARY_NAME><![CDATA[ENG 05]]></A.LIBRARY_NAME>
</identifier>
</somerootelement>