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 を使用したことがないため、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 PiesおよびSomething Beautiful 1 つの単一の文字列として

以下は完全に機能します。http://jsfiddle.net/k5sVt/15/の jsFiddle リンクを確認してください。

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