2013-05-10 128 views
0

如何查找'roster'标记并将其推入数组(如果找到'player'节点)。 我如何检查,'名册'标签中没有子元素。检查javascript中的XML节点是否为空

我试图通过以下方式,但没有工作,

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

var p = new DOMParser(); 
var doc = p.parseFromString(strXML, "application/xml"); 
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); 

我得到的输出,但输出来了空白,如果发现任何空值。

+0

你似乎会问两个不同的问题。你能否在这个问题中提供一个XML例子,说明你的“名册中没有子元素”标签是什么意思?“你的问题不清楚。 – 2013-05-10 03:47:06

+0

第二包含元素,但不是在第一 – vishnu 2013-05-10 03:48:44

+0

需要推动所有玩家在属性数组 – vishnu 2013-05-10 03:49:48

回答

0

你的XML有问题,应该有一个根元素文档

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

演示:Fiddle

+0

对不起,我忘了把 – vishnu 2013-05-10 03:52:27

+0

@vishnu如果你有根元素则数组是有两个值,你可以请参阅小提琴 – 2013-05-10 03:53:44

+0

谢谢你,但我如何将空白值推入数组 – vishnu 2013-05-10 03:57:53