解析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