2017-08-23 8 views
0

エラーを処理する方法未定義のプロパティ 'getAttribute'を読み取ることができません。私はDOMParserを使ってxmlタグの属性typeを取得しています。このXMLタグは、時にはFirstTagとすることもできますし、他の時刻はSecondTagにすることもできます。私はFirstTagでうまく動作するこれを実装しますが、SecondTagはコンソールにエラーが表示されます。どのようにハンドル未定義のプロパティ 'getAttribute'を読み取ることができません?

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

あなたは常に 'content'サンプルだけでなく – Ashvin777

+0

まあ内容ませんを投稿することができます同じxmlですが、常に'を持っています ' –

+0

' if'条件は決して通過しません。 'xmlDoc.getElementsByTagName(" FirstTag ")[0]'は決して文字列ではありません。 – Teemu

答えて

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

関連する問題