国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JavaScript JavaScript與XML——“XML DOM”的注意要點(diǎn)

figofuture / 2971人閱讀

摘要:如發(fā)生解析錯(cuò)誤時(shí),仍然會(huì)從中返回一個(gè)對(duì)象。但這個(gè)對(duì)象的文檔元素是對(duì)象根元素第一個(gè)子元素為。

DOM2級(jí)核心

docuent.implementation中引入了createDocument()方法,IE9支持該方法,如:

var xmldom = document.implementation.createDocument(namespaceUri, root, doctype);

一般來說只用傳第二個(gè)參數(shù)即可:

var xmldom = document.implementation.createDocument("", "root", null);

創(chuàng)建一個(gè)新的、文檔元素為root的XML文檔,可以使用下面代碼:

var xmldom = document.implementation.createDocument("", "root", null); 命名空間URI為空字符表示未指定命名空間,給文檔類型傳入null即不指定文檔類型。
console.log(xmldom.documentElement.tagName); //"root"

var child = xmldom.createElement("child");
xmldom.documentElement.appendChild(child);
DOMParser類型

Firefox、Opera、Chrome、Safari支持(IE8不支持),

DOMParse類型可將XML解析為DOM文檔。

創(chuàng)建一個(gè)DOMParse實(shí)例,再調(diào)用

parseFromString()方法。這個(gè)方法接受兩個(gè)參數(shù):要解析的XML字符串和內(nèi)容類型(內(nèi)容類型始終為"text/xml")。返回值是一個(gè)Document實(shí)例。

如:

var parser = new DOMParse();
var xmldom = parser.parseFromString("", "text/xml");

alert(xmldom.documentElement.tagName); //"root"
alert(xmldom.documentElement.firstChild.tagName); //"child"
var anotherChild = xmldom.createElement("child");
xmldom.documentElement.appendChild(anthorChild);
var children = xmldom.getElementsByTagName("child");
alert(children.length); //2

發(fā)生解析錯(cuò)誤時(shí),仍然會(huì)從parseFromString()中返回一個(gè)Document對(duì)象。但這個(gè)對(duì)象的文檔元素是

(Firefox、Opera);對(duì)象根元素第一個(gè)子元素為(Safari、Chrome)。

parseerror元素的內(nèi)容是對(duì)解析錯(cuò)誤地描述。通過getElementsByTagName()查找parsererror確定是否有解析錯(cuò)誤。

var parser = new DOMParser(),
    xmldom,
    errors;
try {
    xmldom = parser.parseFromString("", "text/xml"); //這里少了一個(gè)閉標(biāo)簽
    errors = xmldom.getElementsByTagName("parsererror");
    if (errors.length > 0) {
        throw new Error("Parsing error!");
    }
} catch (ex) {
    console.log(ex.message); //Parsing error!
}
XMLSerializer類型

此類可將DOM文檔序列化為XML字符串。(IE6~8不支持)。

要序列化DOM文檔,首相必須創(chuàng)建XMLSerializer實(shí)例,然后將文檔傳入其serializerToString()方法:

var xmldom = document.implementation.createDocument("", "root", null);
xmldom.documentElement.appendChild(xmldom.createElement("child"));

var serializer = new XMLSerializer();
var xml = serializer.serializeToString(xmldom);

console.log(xml); //
IE8之前版本中的XML

(略)

雖然可以通過XML DOM文檔對(duì)象加載XML文件,但公認(rèn)的還是使用XMLHttpRequest對(duì)象比較好。

跨瀏覽器處理XML 解析XML
function parseXml(xml) {
    var xmldom = null;
    if (typeof DOMParser != "undefined") {
        xmldom = (new DOMParser()).parseFromString(xml, "text/xml");
        var errors = xmldom.getElementsByTagName("parsererror");
        if (errors.length > 0) {
            throw new Error("XML parsing error: " + errors[0].textContent);
        }
    } else if (typeof ActiveXObjext != "undefined") {
        xmldom = createDocument();
        xmldom.loadXML(xml);
        if (xmldom.parseError != 0) {
            throw new Error("XML parsing error: " + xmldom.parseError.reason);
        }
    } else {
        throw new Error("No XML parser available.");
    }
    return xmldom;
}
序列化XML
function serializeXml(xmldom) {
    if (typeof XMLSerializer != "undefined") {
        return (new XMLSerializer()).serializeToString(xmldom);
    } else if (typeof xmldom.xml != "undefined") {
        return xmldom.xml;
    } else {
        throw new Error("Could not serialize XML DOM.");
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/110344.html

相關(guān)文章

  • JavaScript JavaScriptXML——“XML DOM注意要點(diǎn)

    摘要:如發(fā)生解析錯(cuò)誤時(shí),仍然會(huì)從中返回一個(gè)對(duì)象。但這個(gè)對(duì)象的文檔元素是對(duì)象根元素第一個(gè)子元素為。 DOM2級(jí)核心 docuent.implementation中引入了createDocument()方法,IE9支持該方法,如: var xmldom = document.implementation.createDocument(namespaceUri, root, doctype); ...

    melody_lql 評(píng)論0 收藏0
  • JavaScript JavaScriptXML——“XSLT”注意要點(diǎn)

    摘要:中的它不是一種正式的規(guī)范,,是的另一表現(xiàn)形式。是第一個(gè)支持它的。主要的功能是用來將轉(zhuǎn)換為文檔。方法用于取得當(dāng)前參數(shù)的值,參數(shù)為命名空間和參數(shù)的內(nèi)部名稱。跨瀏覽器使用這個(gè)函數(shù)接收兩個(gè)參數(shù)要執(zhí)行轉(zhuǎn)換的上下文節(jié)點(diǎn)和文檔對(duì)象。 IE中的XSTL 它不是一種正式的規(guī)范,, 是XPath的另一表現(xiàn)形式。 IE是第一個(gè)支持它的。 簡單的XSTL轉(zhuǎn)換 XML文檔的方式就是將它們分別加到一個(gè)DOM文檔中...

    wupengyu 評(píng)論0 收藏0
  • JavaScript JavaScriptXML——“XSLT”注意要點(diǎn)

    摘要:中的它不是一種正式的規(guī)范,,是的另一表現(xiàn)形式。是第一個(gè)支持它的。主要的功能是用來將轉(zhuǎn)換為文檔。方法用于取得當(dāng)前參數(shù)的值,參數(shù)為命名空間和參數(shù)的內(nèi)部名稱。跨瀏覽器使用這個(gè)函數(shù)接收兩個(gè)參數(shù)要執(zhí)行轉(zhuǎn)換的上下文節(jié)點(diǎn)和文檔對(duì)象。 IE中的XSTL 它不是一種正式的規(guī)范,, 是XPath的另一表現(xiàn)形式。 IE是第一個(gè)支持它的。 簡單的XSTL轉(zhuǎn)換 XML文檔的方式就是將它們分別加到一個(gè)DOM文檔中...

    LeexMuller 評(píng)論0 收藏0
  • JavaScript AjaxComet——“XMLHttpRequest對(duì)象”注意要點(diǎn)

    摘要:在中,對(duì)象是通過庫中的對(duì)象實(shí)現(xiàn)的。可以檢測(cè)對(duì)象的屬性,該屬性表示請(qǐng)求響應(yīng)過程的當(dāng)前活動(dòng)階段。已經(jīng)調(diào)用但尚未接收到響應(yīng)接收。由于內(nèi)存原因,不建議重用對(duì)象。頭部信息對(duì)象提供了操作請(qǐng)求頭部和響應(yīng)頭部信息的方法。建議使用自定義的頭部名稱。 在IE5中,XHR對(duì)象是通過MSXML庫中的ActiveX對(duì)象實(shí)現(xiàn)的。在IE中可能會(huì)遇到三種不同版本的XHR對(duì)象,即MSXML2.XMLHttp、MSXML...

    Martin91 評(píng)論0 收藏0
  • JavaScript DOM

    摘要:但上述兩個(gè)情況中都是同一份文檔。提示對(duì)象是對(duì)象的一部分,可通過屬性對(duì)其進(jìn)行訪問。返回包含指定節(jié)點(diǎn)的子節(jié)點(diǎn)的集合,該集合為即時(shí)更新的集合。對(duì)象在中,對(duì)象表示元素屬性節(jié)點(diǎn)的無序集合。 DOM簡介( Document Object Model 文檔對(duì)象模型) W3C W3C 文檔對(duì)象模型 (DOM) 是中立于平臺(tái)和語言的接口,它允許程序和腳本動(dòng)態(tài)地訪問和更新文檔的內(nèi)容、結(jié)構(gòu)和樣式。W3C D...

    Nekron 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<