[英]I can't seem to properly parse XML data in JS
我有一個輸入字段,其中包含以下文本:
<?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>
我有這些變量:
var outputField = document.getElementById('output');
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(document.getElementById('output'), "text/xml");
當我這樣稱呼時:
xmlDoc.getElementsByTagName("player")[0].childNodes[0].nodeValue;
我收到此錯誤:
未捕獲到的TypeError:無法讀取在1:1:41處未定義的屬性'childNodes'
我究竟做錯了什么?
播放器元素沒有子節點。 您需要縮短產生錯誤的行
xmlDoc.getElementsByTagName("player")[0].childNodes[0].nodeValue;
至
xmlDoc.getElementsByTagName("player")[0].nodeValue;
最好知道您要訪問的內容,因為上面的語句的評估結果為null
:
var outputField = document.getElementById('output'); var parser = new DOMParser(); var xmlDoc = parser.parseFromString(outputField.value, "text/xml"); console.log(xmlDoc.getElementsByTagName("player")[0].nodeValue);
<html> <body> <textarea id="output"> <?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> </textarea> </body> </html>
更新:這是一個如何從“玩家”元素獲取屬性的示例:
var outputField = document.getElementById('output'); var parser = new DOMParser(); var xmlDoc = parser.parseFromString(outputField.value, "text/xml"); console.log(xmlDoc.getElementsByTagName("player")[0].getAttribute('name'));
<html> <body> <textarea id="output"> <?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> </textarea> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.