2013-05-09 2 views
0

를 사용하여 XML 노드를 구문 분석하는 방법 : 내가 속성 값을 구문 분석하고 배열에 밀어 어떻게나는 다음과 같은 방법으로 XML이 자바 스크립트

<roster> 
<player code="AUQ" name="AVDALOVIC, VULE" position="Guard"/> 
<player code="AQX" name="SCHULTZE, SVEN" position="Forward"/> 
</roster> 

합니다.

+0

예상되는 출력 형식은 무엇입니까? –

+0

에는 하나의 배열에 코드, 이름 및 위치가 포함되어 있습니다. – vishnu

+0

그게 내가 말한 것입니다. '[ ""AUV ","AVDALOVIC, VULE ","Guard "]'또는 속성 : 값 쌍? –

답변

0

xml이 이와 같이 할 수있는 문자열 인 경우. 문서가 이미 dom 문서이거나 문서 인 경우 "doc is"가 기록 될 때까지 부분을 건너 뛸 수 있습니다.

var strXML = '<roster>\ 
<player code="AUQ" name="AVDALOVIC, VULE" position="Guard"/>\ 
<player code="AQX" name="SCHULTZE, SVEN" position="Forward"/>\ 
</roster>'; 

var p = new DOMParser(); 
var doc = p.parseFromString(strXML, "application/xml"); 
console.log("doc is",doc); 
var players=doc.getElementsByTagName("player"); 
var i=0,arr=[]; 
for(i=0;i<players.length;i++){ 
    arr.push({ 
    code:players[i].getAttribute("code"), 
    name:players[i].getAttribute("name"), 
    position:players[i].getAttribute("position"), 
    }); 
} 
console.log(arr); 
1

jquery를 사용하는 경우 다음 코드를 시도해 볼 수 있습니다.

var xml_string = [ 
    '<roster>', 
     '<player code="AUQ" name="AVDALOVIC, VULE" position="Guard"/>', 
     '<player code="AQX" name="SCHULTZE, SVEN" position="Forward"/>', 
    '</roster>' 
].join(''); 

var result = []; 

$(xml_string).find('player').each(function(){ 
    result.push({ 
     code : $(this).attr('code'), 
     name : $(this).attr('name'), 
     position : $(this).attr('position'), 
    }); 
}); 

result는 다음을 시도 할 수 jQuery 라이브러리없이 값

의 배열이 포함되어 있습니다.

var xml_string = [ 
'<roster>', 
    '<player code="AUQ" name="AVDALOVIC, VULE" position="Guard"/>', 
    '<player code="AQX" name="SCHULTZE, SVEN" position="Forward"/>', 
'</roster>'].join(''); 

var parser = new DOMParser(); 
var playerTags = parser 
     .parseFromString(xml_string , "application/xml") 
     .getElementsByTagName("player"); 

var result = [].reduce.call(
    playerTags , 
    function(p, n){ 
     p.push({ 
     code : n.getAttribute('code'), 
     name : n.getAttribute('name'), 
     position : n.getAttribute('position'), 
     }); 
     return p; 
    }, 
    [] 
); 
+0

저는 javascript..can을 사용하고 있습니다. 어떻게 할 수 있는지 아이디어를 알려주세요. – vishnu

관련 문제