Как jQuery анализировать XML из другого XML? - PullRequest
1 голос
/ 24 марта 2010

, пожалуйста, помогите мне разобрать xml из другого xml ...

У меня есть этот xml с именем browser.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>

, тогда это - figure_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>

и у меня все еще есть много других xml, которые связаны с browser.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>

как мне разобрать figure_activity ??у меня все еще не может быть пути ... пожалуйста, кто-нибудь поможет ..

примечание: код комментария - мой неудачный способ анализа, возможно, кто-то мог бы это исправить, но если вы могли бы дать мне другое решение, пожалуйста, добро пожаловать

1 Ответ

0 голосов
/ 24 марта 2010
$(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>

Сигнальные выходы: Бинго!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...