2012-03-27 5 views
0

XML 데이터를 구문 분석하는 자바 스크립트 프로젝트에서 작업 중입니다.JQuery로 중첩 된 XML 구문 분석

<?xml version="1.0" encoding="utf-8"?> 
<newsmodule> 
    <year name="2012"> 
     <news> 
     <date>Jan 01</date> 
     <title>title 1</title> 
     <info>info 1</info> 
    </news> 
    <news> 
     <date>Jan 02</date> 
     <title>title 2</title> 
     <info>info 2</info> 
    </news> 
</year> 
<year name="2011"> 
    <news> 
     <date>Jan 03</date> 
     <title>title 3</title> 
     <info>info 3</info> 
    </news> 
    <news> 
     <date>Jan 04</date> 
     <title>title 4</title> 
     <info>info 4</info> 
    </news> 
</year> 

내가 배열의 2012 년에 대한 모든 날짜를 작성해야합니다 : 나는 다음과 같은 구조의 XML 파일이 있습니다. 다음 코드를 사용했습니다.

그리고 분명히 동일한 배열의 모든 데이터를 가지고 있습니다.

작동시키기위한 방법이 있습니까? xml 파일을 변경할 수 없습니다.

+0

XML을 JSON으로 변환하는 기능으로이 문제를 해결할 수 있습니까? –

답변

1

매우 브라우저에 따라 사용 parseXML 인 XML을 통해 통과하는 jQuery의 DOM 탐색 방법을 사용하지 마십시오, 또한 조작 된 당신이 게시 한 XML을 정확히 경우에는 종료 </newsmodule>

var xml='<newsmodule> 
    <year name="2012"> 
     <news> 
     <date>Jan 01</date> 
     <title>title 1</title> 
     <info>info 1</info> 
    </news> 
    <news> 
     <date>Jan 02</date> 
     <title>title 2</title> 
     <info>info 2</info> 
    </news> 
</year> 
<year name="2011"><news> 
     <date>Jan 03</date> 
     <title>title 3</title> 
     <info>info 3</info> 
    </news> 
    <news> 
     <date>Jan 04</date> 
     <title>title 4</title> 
     <info>info 4</info> 
    </news> 
</year></newsmodule>'; 


    xmlDoc = $.parseXML(xml), 
    $xml = $(xmlDoc), 
    $title = $xml.find("year[name='2012']"); 

$("body").append($($title).find("date").text()); 
없다

DEMO

+0

http://jsfiddle.net/HXLk4/24/ – Rafay