Javascript 我能';似乎无法正确解析JS中的XML数据
我有一个输入字段,其中包含以下文本:Javascript 我能';似乎无法正确解析JS中的XML数据,javascript,html,xml,Javascript,Html,Xml,我有一个输入字段,其中包含以下文本: <?xml version="1.0" encoding="utf-8"?> <players timestamp="1536505850"> <player id="0518" name="Eagles, Philadelphia" position="Def" team="PHI" /> <player id="10271" name="Jones, Julio" position="WR" team="
<?xml version="1.0" encoding="utf-8"?>
<players timestamp="1536505850">
<player id="0518" name="Eagles, Philadelphia" position="Def" team="PHI" />
<player id="10271" name="Jones, Julio" position="WR" team="ATL" />
<player id="12154" name="Ajayi, Jay" position="RB" team="PHI" />
</players>
当我称之为:
xmlDoc.getElementsByTagName("player")[0].childNodes[0].nodeValue;
我得到这个错误:
未捕获的TypeError:无法读取1:41处未定义的属性“childNodes”
我做错了什么?播放器元素没有子节点。您需要缩短从中产生错误的行
xmlDoc.getElementsByTagName("player")[0].childNodes[0].nodeValue;
到
不过,最好知道您试图访问的是什么,因为上面的语句将计算为null
:
var outputField=document.getElementById('output');
var parser=新的DOMParser();
var xmlDoc=parser.parseFromString(outputField.value,“text/xml”);
log(xmlDoc.getElementsByTagName(“player”)[0].nodeValue)代码>
如何访问特定值,例如第一个玩家的名字?我以为执行console.log(xmlDoc.getElementsByTagName(“player”)[0]
将返回第一个播放器的所有值。@不,xmlDoc.getElementsByTagName(“player”)[0]
将返回文档中标记名为“player”的第一个元素。您正在查找element.getAttribute(名称:string)
。我更新了答案以获取第一个“player”元素的name属性。
xmlDoc.getElementsByTagName("player")[0].childNodes[0].nodeValue;
xmlDoc.getElementsByTagName("player")[0].nodeValue;