0

我有一个 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" 节点的内容,但得到了整个项目结果。

4

2 回答 2

0

jQuery 有一个特殊的函数用于返回属性值:

$('Field').attr('Name');

这应该返回属性的值。

但是,我从来没有在 XML 上使用过 jQuery,所以我不确定它会如何处理它。不过,您应该试一试。

于 2013-02-28T21:20:04.230 回答
0

你应该做这个 :

   var xml = $.parseXML(outputFromAJAXXML),
   $xml = $( xml ),
   $test = $xml.find('Field[Name="Name"]');
   console.log($test.text()); // This works

上述输出,连接名称 -En la Planta de Tus PiesSomething Beautiful 作为一个单一的字符串

下面的作品完美。在此处查看 jsFiddle 链接http://jsfiddle.net/k5sVt/15/

  $(outputFromAJAXXML).find('Field[Name="Name"]').each(function()
  {
   console.log('****'+$(this).text());
  });
于 2013-02-28T21:22:27.890 回答