views:

154

answers:

1

hi,,, please help me to parse xml from another xml...

i have this xml named 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>

then this is the 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>

and i still have so many other xml that linked from browser.xml

This is how i parse 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>

how do i parse the diagram_activity?? i still couldn't have the way... please somebody help..

note : the comment code is my failed way to parse, maybe somebody could fix it but if you could give me another solution, please welcome

A: 
$(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>

Alert outputs : Bingo!

XGreen
thanks for the solution but sorry...i need to pass the data from first xml as output in second xml too (not only parse and access second xml)or maybe you have solution fetch second xml data to display in first xml output...