Jquery Parse XML

我想使用JQuery阅读以下XML。 Jquery应该读取XML并在HTML中显示以下内容,以下所有内容都应该链接

News Articles ---Destinations ---Epics Tuesday Night Bouldering 

我的XML看起来如下……

   96 News   97Articles  101 Destinations   102 Epics    129 Tuesday Night Bouldering  

你可以递归地做到这一点。

但是你需要让你的xml有一个根节点。

这是你的规范的一个function( 它是核心jQuery,所以我假设移动版本可以应付它

 function CategoryToUl(xml){ var categories = xml.children('category'); if (categories.length > 0) { var ul = $('
    '); categories.each(function(){ var $this = $(this); var li = $('
  • '); var a = $('',{ text: $this.children('title').text(), href: '#' + $this.children('catId').text() }); li.append(a); li.append( CategoryToUl( $this ) ); ul.append(li); }); return ul; } return null; }

    以下是如何称呼它

     $.ajax({ url:'path-to.xml', dataType: 'xml', success: function(data){ var xml = $(data); $('#container').append( CategoryToUl(xml.children()) ); } }); 

    演示 http://www.jsfiddle.net/gaby/UC2dM/1/


    它创建了这样的结构

      
     jQuery.ajax({ type: "GET", url: 'your_xml.xml', //edit this to be the path of your file dataType: ($.browser.msie) ? "text/xml" : "xml", success: function(xml) { var xml2 = load_xml(xml); var i=0; $(xml2).find('category').each(function(){ $(xml2).find('catID').each(function(){ //output of catID will be $(this).text() alert($(this).text()) }); $(xml2).find('title').each(function(){ //output of title will be $(this).text() alert($(this).text()) }); }); } }); 

    和加载XML函数:

     function load_xml(msg) { if ( typeof msg == 'string') { if (window.DOMParser)//Firefox { parser=new DOMParser(); data=parser.parseFromString(text,"text/xml"); }else{ // Internet Explorer data=new ActiveXObject("Microsoft.XMLDOM"); data.async="false"; data.loadXML(msg); } } else { data = msg; } return data; } 

    对不起,我觉得我应该解释一下 – 这个load_xml()函数可以运行crossbrowser(IE,FireFox,Chrome,Safari等)。

    JQuery变得如此简单:

     var xml = your xml... JQuery(xml).find('category').each(function(){ JQuery(xml).find('catID').each(function(){ alert($(this).text()) }); }); 

    这是正确的AJAX

     jQuery.ajax({ type: "GET", url: 'your_xml.xml', //edit this to be the path of your file dataType: ($.browser.msie) ? "text/xml" : "xml", success: function(xml) { var xml2 = load_xml(xml); var i=0; $(xml2).find('category').each(function(){ var category = $(this); category.find('catID').each(function(){ //output of catID will be $(this).text() alert($(this).text()) }); category.find('title').each(function(){ //output of title will be $(this).text() alert($(this).text()) }); }); } });