欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

firefo xml 讀寫實(shí)現(xiàn)js代碼

 更新時間:2009年06月11日 22:48:57   作者:  
firefo xml 讀寫實(shí)現(xiàn) 不過要是你的xml要編碼成功還得在str前面加上xml頭,千萬別忘了啊。
一 讀xml文件到字符串
第一步:將xml文件,轉(zhuǎn)化為DOM結(jié)構(gòu)
1
var xmlDoc = document.implementation.createDocument("", "test", null);
xmlDoc.load("d:\\develop\\bookmarks.xml");
2
var req = new XMLHttpRequest();
req.open("GET", "chrome://passwdmaker/content/people.xml", false);
req.send(null);
var dom = req.responseXML;
dom就是DOM結(jié)構(gòu)對象
第二步:將DOM結(jié)構(gòu)轉(zhuǎn)化為xml字符串
var serializer = Components.classes["@mozilla.org/xmlextras/xmlserializer;1"].createInstance(Components.interfaces.nsIDOMSerializer);
var str = serializer.serializeToString(dom);
str就是xml內(nèi)容的字符串
二 將xml字符串寫成xml文件
// str為xml字符串
var parser = new DOMParser();
var dom = parser.parseFromString(str, "text/xml");
var serializer = Components.classes["@mozilla.org/xmlextras/xmlserializer;1"].createInstance(Components.interfaces.nsIDOMSerializer);
var foStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream);
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("d:\\develop\\myxmlfile.xml");// 保持的位置
foStream.init(file, 0x02 | 0x08 | 0x20, 0664, 0); // write, create, truncate
serializer.serializeToStream(dom.documentElement, foStream, ""); // rememeber, dom is the DOM tree
foStream.close();
附件:
1 創(chuàng)建DOM結(jié)構(gòu)
// 生成document對象
var xmldoc = document.implementation.createDocument("","",null);
// 創(chuàng)建xml文件的頭
// <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
var head = xmldoc.createProcessingInstruction("xml","version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"");
xmldoc.appendChild(head);
// 創(chuàng)建ROOT節(jié)點(diǎn)
var nodest = xmldoc.createElement("nodeset");
xmldoc.appendChild(nodest);
// 創(chuàng)建子節(jié)點(diǎn)
var elem1 = doc.createElement("name");
elem1.textContent = "張三";
nodest.appendChild(elem1);
var elem2 = doc.createElement("name");
elem2.textContent = "李四";
nodest.appendChild(elem2);
// 創(chuàng)建的結(jié)果如下
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><nodeset><name>張三</name><name>李四</name></nodeset>
這樣生成的xmlDOM結(jié)構(gòu)通過系列化轉(zhuǎn)化為xml字符串時不會自動縮進(jìn),但通過XML對象解析下就可以了。
var serializer = Components.classes["@mozilla.org/xmlextras/xmlserializer;1"].createInstance(Components.interfaces.nsIDOMSerializer);
// 解析DOMxml結(jié)構(gòu)到xml字符串
// 要XML對象解析成功必須將xml頭去掉
// 去掉xml頭
var xmlDeclaration = /^<\?xml version[^>]+?>/;
var str = new XML( serializer.serializeToString(xmldoc).replace(xmlDeclaration, '') ).toXMLString();
哈哈,現(xiàn)在的str就是能夠自動縮進(jìn)的xml字符串了。不過要是你的xml要編碼成功還得在str前面加上xml頭,千萬別忘了啊。

相關(guān)文章

  • JavaScript實(shí)現(xiàn)瀏覽器網(wǎng)頁自動滾動并點(diǎn)擊的示例代碼

    JavaScript實(shí)現(xiàn)瀏覽器網(wǎng)頁自動滾動并點(diǎn)擊的示例代碼

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)瀏覽器網(wǎng)頁的自動滾動并點(diǎn)擊的示例代碼,幫助大家更好的理解和學(xué)習(xí)JavaScript的使用,感興趣的朋友可以了解下
    2020-12-12
  • JS中數(shù)據(jù)類型的正確判斷方法實(shí)例

    JS中數(shù)據(jù)類型的正確判斷方法實(shí)例

    怎么去判斷一個數(shù)據(jù)屬于哪個數(shù)據(jù)類型,這個是很常見的操作,我們一般都會想到typeof和instanceof這兩個常見的方法,但有時候這兩種方法并不能滿足我們的需求,下面這篇文章主要給大家介紹了關(guān)于JS中數(shù)據(jù)類型的正確判斷方法,需要的朋友可以參考下
    2021-08-08
  • BootStrap整體框架之基礎(chǔ)布局組件

    BootStrap整體框架之基礎(chǔ)布局組件

    這篇文章主要為大家詳細(xì)介紹了BootStrap整體框架之基礎(chǔ)布局組件的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • JSON與XML的區(qū)別對比及案例應(yīng)用

    JSON與XML的區(qū)別對比及案例應(yīng)用

    這篇文章主要介紹了JSON與XML的區(qū)別對比及案例應(yīng)用的講解。本文涉及到XML和JSON優(yōu)缺點(diǎn)講解及對比,非常不錯,具有一定的參考借鑒價值,感興趣的朋友一起看看吧
    2016-11-11
  • 淺析JavaScript中的變量復(fù)制、參數(shù)傳遞和作用域鏈

    淺析JavaScript中的變量復(fù)制、參數(shù)傳遞和作用域鏈

    這篇文章主要介紹了淺析JavaScript中的變量復(fù)制、參數(shù)傳遞和作用域鏈 的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • 原生JS實(shí)現(xiàn)特效留言框

    原生JS實(shí)現(xiàn)特效留言框

    這篇文章主要為大家詳細(xì)介紹了原生JS實(shí)現(xiàn)特效留言框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JavaScript實(shí)現(xiàn)JSON合并操作示例【遞歸深度合并】

    JavaScript實(shí)現(xiàn)JSON合并操作示例【遞歸深度合并】

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)JSON合并操作,結(jié)合實(shí)例形式分析了javascript基于遞歸深度實(shí)現(xiàn)json合并操作相關(guān)實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-09-09
  • JS函數(shù)重載的解決方案

    JS函數(shù)重載的解決方案

    在面向?qū)ο蟮木幊讨?,很多語言都支持函數(shù)重載,能根據(jù)函數(shù)傳遞的不同個數(shù)、類型的參數(shù)來做不同的操作,JS對它卻不支持,需要我們額外做些小動作。
    2014-05-05
  • 20多個小事例帶你重溫ES10新特性(小結(jié))

    20多個小事例帶你重溫ES10新特性(小結(jié))

    這篇文章主要介紹了20多個小事例帶你重溫ES10新特性(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • javascript繼承的六大模式小結(jié)

    javascript繼承的六大模式小結(jié)

    本文給大家詳細(xì)總結(jié)了下javascript繼承的六大模式,分別為1.原型鏈,2.借用構(gòu)造函數(shù),3.組合繼承,4.原型式繼承,5.寄生式繼承,6.寄生組合式繼承,十分的全面,有需要的小伙伴可以參考下。
    2015-04-04

最新評論