2010-03-24 5 views
1

... 나 다른 XML에서 XML을 구문 분석 내가이 XML이 browser.xml라는 이름의 한jQuery가 다른 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> 

어떻게하면 diagram_activity를 구문 분석합니까 ?? 나는 여전히 길을 가질 수 없었다 ... 누군가 도와주세요 ..

참고 : 의견 코드는 구문 분석에 실패했습니다. 어쩌면 누군가 고칠 수 있지만 다른 해결책을 줄 수 있다면 환영합니다.

답변

0
$(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> 

경보 출력 : 빙고!

+0

솔루션에 대한 감사하지만 죄송 ... 내가 너무 두 번째 XML의 출력으로 첫 번째 XML에서 데이터를 전달해야 (뿐만 아니라 구문 분석하고 두 번째 XML 액세스) 또는 어쩌면 당신이 솔루션은 두 번째 XML 데이터를 가져가 첫 번째 XML 출력에 표시 ... – user300695

관련 문제