2013-02-08 75 views
1

如何使用jQuery讀取此XML文件? 用 「正常的標籤」,它好像沒什麼問題:<car>Mustang</car>XML> jQuery閱讀

HTML/jQuery的:

$(document).ready(function(){ 
$.get("AMA.xml", function(XMLArray){ 
$(XMLArray).find("dataset").each(function(){ 

var $myAMA = $(this); 
var number = $myAMA.attr("article.plunumber"); 
var name = $myAMA.attr("article.name"); 
var price = $myAMA.attr("article.price").text(); 
$("#AMAContainer").append("<p>"+number+"<br>"+name+"<br>"+price+"</p>"); 
    }); 
}); 
}); 

XML文件:

<document name="screen"> 
    <section name="list"> 
     <dataset> 
      <var key="type">article</var> 
      <var key="article.number">1</var> 
      <var key="article.name">Testname1</var> 
      <var key="article.displayname"/> 
      <var key="article.price">99,99</var> 
      <var key="article.plunumber">1</var> 
      <action key="STANDARD">bp1;</action> 
     </dataset> 
     <dataset> 
      <var key="type">article</var> 
      <var key="article.number">2</var> 
      <var key="article.name">Testname2</var> 
      <var key="article.price">88,88</var> 
      <var key="article.plunumber">2</var> 
      <action key="STANDARD">bp2;</action> 
     </dataset> 
    </section> 
</document> 

我絕對不知道如何閱讀值。 我只需要三個(數量,名稱,價格)。

+0

題外話,但這個插件可能簡化使用XML的工作,它會將XML轉換爲JSON對象,這在JavaScript中通常更容易處理http://www.fyneworks.com/jquery/xml-to -json /一些例子可以在這裏找到http://stackoverflow.com/questions/3642789/how-to-conve rt-xml-to-json-using-jquery – thaJeztah 2013-02-08 23:06:03

回答

3

您可以選擇通過屬性元素<var>,你只需要使用一個屬性選擇器,或過濾器()函數等

$(document).ready(function() { 
    $.get("AMA.xml", function (XMLArray) { 
     var xml = $.parseXML(XMLArray); 
     $(xml).find("dataset").each(function() { 
      var number = $('[key="article.plunumber"]', this).text(); 
      var name = $('[key="article.name"]', this).text(); 
      var price = $('[key="article.price"]', this).text(); 
      $("#AMAContainer").append("<p>" + number + "<br>" + name + "<br>" + price + "</p>"); 
     }); 
    }); 
}); 
+0

Firefox說:「TypeError:$ .parseXML不是函數」,頁面仍然是空白編輯:更新jquery到1.9.1,現在,FF中沒有警報了,頁面是仍然是空白的:( – TheCyX 2013-02-08 23:00:14

+0

仍然空白,不知道爲什麼.. [at] idrumgood:values顯示爲:[object Object] |謝謝!! – TheCyX 2013-02-08 23:17:50

+0

@HolgerFette - 是的,數字和名稱變量是DOM元素,所以作爲[object,object]出現。如果你需要元素的內容,你還需要使用'text()'或類似的東西,就像你在最後一個'price'上做的那樣!更改了代碼? OMG! – adeneo 2013-02-08 23:37:28

0
var number = $myAMA.find('var[key="article.plunumber"]'); 

對待,就像你對待<dataset>