2013-04-01 54 views
0

我正在嘗試使用XPath提取XML。它適用於Firefox和Chrome,但它不適用於IE9。是否有一些訣竅或黑客應該做?你可以看到它hereXpath與Internet Explorer不兼容

下面是HTML:

<!DOCTYPE html> 
<html> 
<body> 
<script> 
function loadXMLDoc(dname) 
{ 
    if (window.XMLHttpRequest) 
    { 
     xhttp=new XMLHttpRequest(); 
    } 
    else 
    { 
     xhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xhttp.open("GET",dname,false); 
    xhttp.send(""); 
    return xhttp.responseXML; 
} 

//xml=loadXMLDoc("productfeed-production-version_sample.xml"); 
xml=loadXMLDoc("data.xml"); 
//path="/Products/Product/Category" 
path="root/article[3]/Price" 
// code for IE 
if (window.ActiveXObject) 
{ 
    var nodes=xml.selectNodes(path); 

    for (i=0;i<nodes.length;i++) 
    { 
     document.write(nodes[i].childNodes[0].nodeValue); 
     document.write("<br>"); 
    } 
} 
// code for Mozilla, Firefox, Opera, etc. 
else if (document.implementation && document.implementation.createDocument) 
{ 
    var nodes=xml.evaluate(path, xml, null, XPathResult.ANY_TYPE, null); 
    var result=nodes.iterateNext(); 

    while (result) 
    { 
     document.write(result.childNodes[0].nodeValue); 
     document.write("<br>"); 
     result=nodes.iterateNext(); 
    } 
} 
</script> 

</body> 
</html> 

下面是XML文件:

<?xml version="1.0" encoding="iso-8859-1"?> 
<root> 
<article> 
    <title>Best of the West - Édition Été 2013</title> 
    <description>Un voyage dans l'Ouest américain est sans aucun doute ce qu'il y a de mieux pour qui veut se rendre aux Etats-Unis! Vous y transiterez par trois des villes les plus branchées...</description> 
    <url>http://www.connections.be</url> 
    <urltext>Visit the Site: connections.be</urltext> 
    <Price>199,99</Price> 
</article> 
<article> 
    <title>Hôtel Yotel</title> 
    <description>Prenez le concept des hôtels capsule japonais, ajoutez-y le meilleur de la première classe des avions, saupoudrez le tout avec un style urbain et tendance,...</description> 
    <url>http://www.connections.be</url> 
    <urltext>Learn more</urltext> 
    <Price>199,99</Price> 
</article> 
<article> 
    <title>Essential Thailand</title> 
    <description>Ce programme individuel, idéal pour un premier voyage en Thaïlande, vous emmène à la découverte des points d'orgue de Bangkok et de Chiang Mai.</description> 
    <url>http://www.connections.be</url> 
    <urltext>Continue Reading...</urltext> 
    <Price>199,99</Price> 
</article> 
</root> 
+0

當你說「它不工作」時,IE 9發生了什麼?我在這裏有IE 10,並且說'selectNodes'方法不被支持。我知道如何通過確保HTTP請求不是用'XMLHttpRequest'完成的,而是用'new ActiveXObject('Msxml2.DOMDocument.6.0')''完成的,以便'responseXML'是一個MSXML DOM文檔,它支持帶有'selectNodes'的XPath但我目前不確定遇到與IE 9遇到的問題。因此,請提供一些關於您獲得的錯誤的詳細信息,如果有的話。 –

回答

1

您需要使用以下推薦的XPath庫之一,以便XPath的在IE工作:

祝你好運!