firefo xml 读写实现js代码


Posted in Javascript onJune 11, 2009

一 读xml文件到字符串
第一步:将xml文件,转化为DOM结构
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结构对象
第二步:将DOM结构转化为xml字符串
var serializer = Components.classes["@mozilla.org/xmlextras/xmlserializer;1"].createInstance(Components.interfaces.nsIDOMSerializer);
var str = serializer.serializeToString(dom);
str就是xml内容的字符串
二 将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 创建DOM结构
// 生成document对象
var xmldoc = document.implementation.createDocument("","",null);
// 创建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);
// 创建ROOT节点
var nodest = xmldoc.createElement("nodeset");
xmldoc.appendChild(nodest);
// 创建子节点
var elem1 = doc.createElement("name");
elem1.textContent = "张三";
nodest.appendChild(elem1);
var elem2 = doc.createElement("name");
elem2.textContent = "李四";
nodest.appendChild(elem2);
// 创建的结果如下
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><nodeset><name>张三</name><name>李四</name></nodeset>
这样生成的xmlDOM结构通过系列化转化为xml字符串时不会自动缩进,但通过XML对象解析下就可以了。
var serializer = Components.classes["@mozilla.org/xmlextras/xmlserializer;1"].createInstance(Components.interfaces.nsIDOMSerializer);
// 解析DOMxml结构到xml字符串
// 要XML对象解析成功必须将xml头去掉
// 去掉xml头
var xmlDeclaration = /^<\?xml version[^>]+?>/;
var str = new XML( serializer.serializeToString(xmldoc).replace(xmlDeclaration, '') ).toXMLString();
哈哈,现在的str就是能够自动缩进的xml字符串了。不过要是你的xml要编码成功还得在str前面加上xml头,千万别忘了啊。

Javascript 相关文章推荐
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
Apr 27 Javascript
JavaScript学习点滴 call、apply的区别
Oct 22 Javascript
SyntaxHighlighter语法高亮插件使用说明
Aug 14 Javascript
JS复制内容到剪切板的实例代码(兼容IE与火狐)
Nov 19 Javascript
JQuery调用WebServices的方法和4个实例
May 06 Javascript
JavaScript基本数据类型及值类型和引用类型
Aug 25 Javascript
Bootstrap每天必学之缩略图与警示窗
Nov 29 Javascript
详解Bootstrap四种图片样式
Jan 04 Javascript
JavaScript仿微博发布信息案例
Nov 16 Javascript
Node.js 多线程完全指南总结
Mar 27 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
Aug 02 Javascript
vue-cli3中配置alias和打包加hash值操作
Sep 04 Javascript
犀利的js 函数集合
Jun 11 #Javascript
js 操作css实现代码
Jun 11 #Javascript
图片连续滚动代码[兼容IE/firefox]
Jun 11 #Javascript
Javascript Tab 导航插件 (23个)
Jun 11 #Javascript
javascript 树控件 比较好用
Jun 11 #Javascript
javascript 禁止复制网页
Jun 11 #Javascript
JavaScript 动态改变图片大小
Jun 11 #Javascript
You might like
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
php 广告调用类代码(支持Flash调用)
2011/08/11 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
php 类自动载入的方法
2015/06/03 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
javascript 特殊字符串
2009/02/25 Javascript
Javascript 构造函数,公有,私有特权和静态成员定义方法
2009/11/30 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
jquery 插件学习(四)
2012/08/06 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
jquery获取节点名称
2015/04/26 Javascript
每日十条JavaScript经验技巧(二)
2016/06/23 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
20行js代码实现的贪吃蛇小游戏
2017/06/20 Javascript
vue中el-upload上传图片到七牛的示例代码
2018/10/19 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
Python pickle模块用法实例
2015/04/14 Python
Python协程的用法和例子详解
2017/09/09 Python
浅谈flask中的before_request与after_request
2018/01/20 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
Django权限控制的使用
2021/01/07 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
全球最大的瓷器、水晶和银器零售商:Replacements
2020/06/15 全球购物
经贸日语专业个人求职信
2013/12/13 职场文书
家长对学生的评语
2014/04/18 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
股东授权委托书
2014/10/15 职场文书
开学典礼观后感
2015/06/15 职场文书
教师节祝酒词
2015/08/11 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
python运算符之与用户交互
2022/04/13 Python