閱讀219 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Xpath in JavaScript (第三部分【IE瀏覽器中對xpath的支持】)

        在前麵的兩篇文章中主要就firefox,safari,opera,chrome瀏覽器中對DOM Level 3 XPath的實現進行介紹。IE8還沒有實現DOM Level 3 XPath中定義的接口,但是它對xpath也有一定的支持,IE中的xpath功能主要對xml文檔可用,對document的對象不可用。

 

在IE中生成xml文檔的方法:

function createDocument(){ if (typeof arguments.callee.activeXString != "string"){ var versions = ["MSXML2.DOMDocument.6.0", "MSXML2.DOMDocument.3.0", "MSXML2.DOMDocument"]; for (var i=0,len=versions.length; i < len; i++){ try { var xmldom = new ActiveXObject(versions[i]); arguments.callee.activeXString = versions[i]; return xmldom; } catch (ex){ //skip } } } return new ActiveXObject(arguments.callee.activeXString); }

生成文檔對象以後,可以使用loadXML()方法加載內容:

var xmldoc = createDocument(); xmldoc.loadXML("");

第二種方法通過XMLHttRequest對象進行請求生成xml對象。

var xhr = new XMLHttpRequest(), xmldoc; xhr.open("get", "data.xml", true); xhr.onreadystatechange = function(){ if (xhr.readyState == 4){ if (xhr.status >= 200 && xhr.status < 300){ xmldoc = xhr.responseXML; } }; xhr.send(null);

第三種方法是使用<xml>標簽,Microsoft把這種方法叫做xml數據島,如下:
<xml src="data.xml"></xml>
然後:
var xmldoc = document.getElementById("myXML").XMLDocument;

XPath支持:

在ie中的xml文檔對象對xpath進行支持有兩個內置方法:
selectSingleNode() and selectNodes(),每個方法都接受xpath表達式作為參數,然後分別放回第一個匹配的節點和所有匹配的節點。

命名空間支持:

對於
<books xmlns:wrox="https://www.wrox.com/" xmlns="https://www.amazon.com/">
    <wrox:book>Professional JavaScript</book>
</books>這段xml文檔,我們應該使用下麵的方法進行查詢,即首先使用setProperty(),來設置xml文檔的命名空間。
xmldoc.setProperty("SelectionNamespaces",
    "xmlns:wrox='https://www.wrox.com/' xmlns='https://www.amazon.com/'");
var book = xmldoc.documentElement.selectSingleNode("wrox:book");

最後更新:2017-04-02 03:42:36

  上一篇:go Socket向服務端發送消息工具類
  下一篇:go ssh框架整合實例子1-配置文件