2017-08-23 2 views
0

Wie kann ich Fehler behandeln Kann die Eigenschaft 'getAttribute' von undefined nicht lesen. Ich verwende DOMParser, um das Attribut type eines XML-Tags zu erhalten. Dieses XML-Tag kann manchmal FirstTag oder zu anderen Zeiten SecondTag sein. Ich implementiere das, das gut mit FirstTag funktioniert, aber wenn SecondTag ist, wird der Fehler in der Konsole angezeigt.Wie handle Kann die Eigenschaft 'getAttribute' von undefined nicht lesen?

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

Können Sie nach den 'content' Proben als auch – Ashvin777

+0

Well Inhalt nicht immer das gleiche ist xml, aber immer hat' ' –

+0

Die 'if' Bedingung wird niemals bestanden,' xmlDoc.getElementsByTagName ("FirstTag") [0] 'wird niemals eine Zeichenkette sein. – Teemu

Antwort

1

Bessere Nutzung xmlDoc.getElementsByTagName("FirstTag").length statt undefined Check

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"); 
 
}

Verwandte Themen