如何处理无法读取属性' getAttribute'未定义的?

时间:2017-08-23 18:51:15

标签: javascript xml-parsing domparser

如何处理错误无法读取属性' getAttribute'未定义的。我使用DOMParser获取xml标记的type属性。此xml标记有时可以是FirstTag,也可以是其他时间SecondTag。我实现这个适用于FirstTag,但是当SecondTag时,错误会显示在控制台中。

var parser = new DOMParser();
var content = '<root>' + content + '</root>';
xmlDoc = parser.parseFromString(content, "text/xml");

if( xmlDoc.getElementsByTagName("FirstTag")[0] == 'undefined' ){
    var element = xmlDoc.getElementsByTagName("SecondTag")[0];
    var type = element.getAttribute("type");
}else {
    var element = xmlDoc.getElementsByTagName("FirstTag")[0];
    var type = element.getAttribute("type");
}

1 个答案:

答案 0 :(得分:1)

更好地使用xmlDoc.getElementsByTagName("FirstTag").length而不是未定义的检查

var parser = new DOMParser();
var content1 = '<root><FirstTag type="something" /></root>';
var content2 = '<root><SecondTag type="something" /></root>';

xmlDoc = parser.parseFromString(content2, "text/xml");

if( xmlDoc.getElementsByTagName("FirstTag").length == 0 ){
    var element = xmlDoc.getElementsByTagName("SecondTag")[0];
    var type = element.getAttribute("type");
}else {
    var element = xmlDoc.getElementsByTagName("FirstTag")[0];
    var type = element.getAttribute("type");
}