如何使用jQuery解析XML?

2020/12/17 12:11 · jquery ·  · 0评论

如何解析XML,以及如何使用jQuery浏览结果?这是我的示例XML:

<Pages>
  <Page Name="test">
    <controls>
      <test>this is a test.</test>
    </controls>
  </Page>
  <Page Name = "User">
    <controls>
      <name>Sunil</name>
    </controls>
  </Page>
</Pages>

我想通过此路径找到节点Pages-> Page Name-> controls-> test

有此$.parseXML功能:http : //api.jquery.com/jQuery.parseXML/

您可以像这样使用它:

var xml = $.parseXML(yourfile.xml),
  $xml = $( xml ),
  $test = $xml.find('test');

console.log($test.text());

如果您真的想要一个对象,则需要一个插件。例如,此插件会将您的XML转换为JSON:http : //www.fyneworks.com/jquery/xml-to-json/

您可以使用 .parseXML

var xml='<Pages>
          <Page Name="test">
           <controls>
              <test>this is a test.</test>
           </controls>  
          </Page>
          <page Name = "User">
           <controls>
             <name>Sunil</name>
           </controls>
          </page>
        </Pages>';

jQuery的

    xmlDoc = $.parseXML( xml ),
    $xml = $( xmlDoc );
    $($xml).each(function(){
       alert($(this).find("Page[Name]>controls>name").text());
     });

这是小提琴http://jsfiddle.net/R37mC/1/

我假设您正在从外部文件加载XML。使用$.ajax(),实际上非常简单:

$.ajax({
    url: 'xmlfile.xml',
    dataType: 'xml',
    success: function(data){
        // Extract relevant data from XML
        var xml_node = $('Pages',data);
        console.log( xml_node.find('Page[Name="test"] > controls > test').text() );
    },
    error: function(data){
        console.log('Error loading XML data');
    }
});

另外,您应该对XML节点命名保持一致。您同时拥有小写和大写的节点名称(<Page>vs <page>),这在尝试使用XML树选择器时会造成混淆。

$xml = $( $.parseXML( xml ) );

$xml.find("<<your_xml_tag_name>>").each(function(index,elem){
    // elem = found XML element
});

看看jQuery的.parseXML() [docs]

var $xml = $(jQuery.parseXML(xml));

var $test = $xml.find('Page[Name="test"] > controls > test');

我走了jQuery的道路,.parseXML()但是发现XML路径语法'Page[Name="test"] > controls > test'不起作用(如果有人知道为什么请大喊大叫!)。

相反,我将各个.find()结果链接在一起,如下所示:

$xmlDoc.find('Page[Name="test"]')
       .find('contols')
       .find('test')

结果达到了我期望的一击发现。

谷歌弹出的第一件事导致http://think2loud.com/224-reading-xml-with-jquery/
没有简单的方法可以访问xml结构(就像您描述的
Pages-> pagename-> controls-> test一样)在jQuery中没有任何插件。

本文地址:http://jquery.askforanswer.com/ruheshiyongjqueryjiexixml.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!