2017-12-20 6 views
0

IE 11에서 작동하도록 Javascript로 작성된 코드를 얻으려고합니다. 그러나 노드 길이에 액세스하려고하면 0이됩니다. 왜 아래 코드가 <somenode> 노드에서 XML을 찾을 수 없는지 확인하십시오. 누구 아이디어가 있습니까?ActiveXObject의 selectNodes 함수가 IE 11에서 작동하지 않습니다.

try { 
    doc = new ActiveXObject("Msxml2.DOMDocument.6.0"); 
    var xml_string = '<somenode><child>Hello</child></somenode> 
        <somenode><child>good bye</child></somenode>'; 
    doc.loadXML(xml_string); 
    doc.setProperty("SelectionLanguage", "XPath"); 
    var node = doc.selectNodes("/somenode"); 
    console.log("node is "+node.length); 
} 
catch (e) 
{ 
    console.log("inside catch"+e); 
} 

답변

0

참고 : XML에 루트 요소가 없습니다. 루트로 <xml>을 추가했습니다.

try { 
    doc = new ActiveXObject("Msxml2.DOMDocument.6.0"); 
    var xml_string = '<xml/><somenode><child>Hello</child></somenode> 
        <somenode><child>good bye</child></somenode></xml>'; 
    doc.loadXML(xml_string); 
    doc.setProperty("SelectionLanguage", "XPath"); 
    var node = doc.selectNodes("/xml/somenode"); 
    console.log("node is "+node.length); 
} 
catch (e) 
{ 
    console.log("inside catch"+e); 
} 
관련 문제