我有一个xml文件,想要检索key属性的内容。
xml文件的结构如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<MPL Version="2.0" Title="MCWS - Files - 2100">
<Item>
<Field Name="Key">1383</Field>
<Field Name="Name">En la Planta de Tus Pies</Field>
<Field Name="Artist">Alejandro Sanz</Field>
<Field Name="Album">El Tren de los Momentos</Field>
<Field Name="Genre">Latin</Field>
</item>
<Item>
<Field Name="Key">938</Field>
<Field Name="Name">Something Beautiful</Field>
<Field Name="Artist">Robbie Williams</Field>
<Field Name="Album">Escapology</Field>
<Field Name="Genre">Rock</Field>
</item>
</MPL>
我的JQuery函数如下所示:
function displaySongs() {
$.ajax({
type: "GET",
url:"Files.xml",
dataType: "xml",
success: function(xml){
var content = "";
$(xml).find('Item').each(function(){
var songId = $(this).find('Field[Name="Key"]');
var songName = $(this).find('Field[Name="Name"]');
content += "<div class=\"Song\">" + songName.text() + "</div>";
$("#output").html(content);
});
},
error: function() {
alert("An error occurred while processing XML file.");
}
});
}
我的问题是我没有找到Name =“Name”节点的内容,而是获取整个项目结果。
答案 0 :(得分:0)
jQuery有一个返回属性值的特殊函数:
$('Field').attr('Name');
这应该返回属性的值。
但是,我从来没有在XML上使用jQuery,所以我不确定如何对待它。不过,你应该试一试。
答案 1 :(得分:0)
你应该这样做:
var xml = $.parseXML(outputFromAJAXXML),
$xml = $( xml ),
$test = $xml.find('Field[Name="Name"]');
console.log($test.text()); // This works
以上输出,连接名称 - En la Planta de Tus Pies
和Something Beautiful
作为一个单独的字符串
以下作品完美无缺。在这里查看jsFiddle链接http://jsfiddle.net/k5sVt/15/:
$(outputFromAJAXXML).find('Field[Name="Name"]').each(function()
{
console.log('****'+$(this).text());
});