解析XML節點我有以下方式XML:如何使用JavaScript
<roster>
<player code="AUQ" name="AVDALOVIC, VULE" position="Guard"/>
<player code="AQX" name="SCHULTZE, SVEN" position="Forward"/>
</roster>
我如何解析的屬性值,並推到一個數組。
解析XML節點我有以下方式XML:如何使用JavaScript
<roster>
<player code="AUQ" name="AVDALOVIC, VULE" position="Guard"/>
<player code="AQX" name="SCHULTZE, SVEN" position="Forward"/>
</roster>
我如何解析的屬性值,並推到一個數組。
如果你的xml是一個字符串,你可以這樣做。如果它已經是一個dom文檔或文檔,那麼你可以跳過該部分,直到它記錄「文檔是」
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);
如果你使用的是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;
},
[]
);
我正在使用javascript..can你請給我一個想法如何做到這一點 – vishnu 2013-05-09 10:00:41
你的預期輸出格式是什麼? – 2013-05-09 09:52:52
對於每個包含一個數組中的代碼,名稱和位置 –
vishnu
2013-05-09 09:54:01
這就是我所說的,你想讓它像'[「AUQ」,「AVDALOVIC,VULE」,「Guard」]還是需要一個對象屬性:值對? – 2013-05-09 09:56:44