2013-02-08 80 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>