2013-02-28 101 views
0

我有一個xml文件,並希望檢索關鍵屬性的內容。JQuery尋找元素的屬性值

的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."); 
    } 
    }); 
} 

我的問題是,我沒有找到名稱的內容=」名稱「節點,但獲取整個項目結果。

回答

0

jQuery有一個特殊的函數返回的屬性值:

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

這應該返回屬性的值。

但是,我從來沒有在XML上使用jQuery,所以我不確定它會如何處理它。不過,你應該試試看。

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()); 
    }); 
+0

嗨,我試過這個,但它仍然顯示該項目的全部內容。我想我應該更好地解釋它。我試圖遍歷Item集合的結果,並嘗試使用名稱的name屬性檢索節點的值。 – user2121256 2013-02-28 22:01:57