【问题标题】:how jquery parse xml from another xml?jquery如何从另一个xml解析xml?
【发布时间】:2010-03-24 10:24:30
【问题描述】:

请帮我从另一个 xml 中解析 xml...

我有这个名为 browser.xml 的 xml

<tree>
<root name="SA" hidden="yes">
<folder name="Diagram">
<folder name="Activity" refreshURL="diagram_activity.xml"></folder>
<folder name="Business Process" refreshURL="diagram_business_process.xml"></folder>
</folder>

<folder name="Other">
<folder name="SA Reports" refreshURL="other_na.xml"></folder>
</folder>
</root>
</tree>

那么这是 diagram_activity.xml

<treeFragment>
<folder name="Penjualan erna">
<link url="businessprocessdiagram_processdiagramreport_2162.htm" target="main">
</link>

<leaf name="Process Diagram Report">
<link url="businessprocessdiagram_processdiagramreport_2162.htm" target="main">
</link>
</leaf>
</folder>
</treeFragment>

我还有很多从 browser.xml 链接的其他 xml

这就是我解析browse.xml的方式

<html>
<head>
<title>tes xml</title>
<script language="javascript" src="js/lib/jquery.js"></script>
<script language="javascript">
 $(document).ready(getxml('browser.xml',parsedataxml))

 function getxml(namafile,parsefunction){
  $.ajax({
   type: 'GET',
   url: namafile,
   dataType: 'xml',
   success: parsefunction
   });
  }

 function parsedataxml(xml){
    var str = '';
    $(xml).find('folder').each(
    function(){
     var name = $(this).attr('name');
     var linkurl = $(this).attr('refreshURL');
     if (typeof linkurl=='undefined'){
      str += 'folder : '+name+'<br/>'; 
      }
     else {
      str += '&nbsp subfolder : '+name+'<br/>&nbsp link :'+linkurl+'<br>';
/*      function(){
       $.ajax({
        type: 'GET',
        url: linkurl,
        dataType: 'xml',
        success: parseleafxml
        });
       }
*/      }
     });
    $('#Result').html(str);
    }
 function parseleafxml(xml){
    var arrdata= new Array();
    var i = 0;
    $(xml).find('folder').each(
    function(){
     var leafname = $(this).attr('name');
     var leaflink = leafname.text().find('link');
     var leafurl = leaflink.attr('url');
     var leaftarget = leaflink.attr('attr');
     //arrdata[i]= {leafname:leafname,leaflink:leafurl,leaftarget:leaftarget};
     //i +=1;


     });
  }

</script>
</head>
<body>
 <div id="Result" style="border:1px solid #006"></div>
</body>
</html>

我如何解析图表活动?我还是没有办法... 请有人帮忙..

注意:注释代码是我解析失败的方式,也许有人可以修复它,但如果你能给我另一个解决方案,请欢迎

【问题讨论】:

    标签: jquery xml parsing


    【解决方案1】:
    $(function() {
    
        $.ajax({
            type: "GET",
            url: "first.xml",
            dataType: "xml",
            success: parseXml
        });
    
        function parseXml(xml) {
    
            $(xml).find('tree').each(function() {
    
                var url = $(this).find('url').text();
    
                if (url != '') {
    
                    $.ajax({
                        type: "GET",
                        url: url,
                        dataType: "xml",
                        success: function parseSecondXML(xml) {
    
                            $(xml).find('tree').each(function() {
    
                                var object = $(this).find('object').text();
    
                                alert(object);
    
                            });
                        }
                    });
    
                }
    
            });
        }
    
    });
    

    first.xml:

    <?xml version="1.0" encoding="utf-8" ?>
    
    <tree>
        <url>second.xml</url>
    </tree>
    

    second.xml:

    <?xml version="1.0" encoding="utf-8" ?>
    
    <tree>
        <object>Bingo</object>
    </tree>
    

    警报输出:宾果游戏!

    【讨论】:

    • 感谢您的解决方案,但抱歉...我也需要将第一个 xml 中的数据作为第二个 xml 的输出传递(不仅解析和访问第二个 xml),或者您可能有解决方案获取第二个 xml 数据在第一个 xml 输出中显示...
    猜你喜欢
    • 1970-01-01
    • 2012-03-11
    • 2013-03-21
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    相关资源
    最近更新 更多