2016-09-20 3 views
0

Я пытаюсь получить значения атрибута в XML-файле, но всегда получаю сообщение "Object required".Значения атрибутов в XML DOC

Мой JS код

<!DOCTYPE html> 
    <html> 
    <body> 
    <p id="demo"></p> 
    <script 

Загрузка XML

 var x, i, txt; 
      try{ 
      var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
      xmlDoc.async = false; 
      xmlDoc.load("atm.xml"); 
      } 
      catch(err){ 
      alert(err.message); 
      } 

     if(!xmlDoc){ 
     alert("Error"); 
     } 

     x = xmlDoc.getElementsByTagName("softKey")[0].attributes; 
     alert(x.length); 
     txt = x.getNamedItem("speech").nodeValue + "<br>" + x.length; 
     alert(txt); 
    </script> 
    </body> 
    </html> 

и есть Xml файла:

 <?xml version="1.0" encoding="UTF-8"?> 
<atmPage id="000" type="null" flash="" timeout="StandardTimeout" isEpp="false" isCancel="2" isFix="2" isOk="2" langCode="some text" skin="REGULAR" inputLength="0" popupGif=""> 
    <atmSoftKeys> 
     <softKey index="1" text="some text " speech="some text" key="A" type="SOFT_KEY" langType="mu"/> 
     <softKey index="2" text="some text" speech="some text" key="B" type="SOFT_KEY" langType="mu"/> 
    </atmSoftKeys> 
    <pageTitle title="some text" titleLangType="some text"/> 
    <notification text="" notificationLangType="some text"/> 
    <atmEppKeys/> 
</atmPage> 
+0

Откуда у вас возникла идея использовать 'new ActiveXObject (« Microsoft.XMLDOM »)'? Вы пытаетесь создать сценарий для старых устаревших версий IE, таких как IE 5 или IE 6? –

+0

Эй, Мартин, да, нужен он в IE6 – Aleksey

ответ

0

Хорошо, это было просто,

var xmlDoc = new ActiveXObject("Microsoft.XMLDOM"); 
     xmlDoc.async = false; 
     xmlDoc.load("Xml.xml"); 
     var x = xmlDoc.getElementsByTagName("softKey")[0].getAttribute("speech");