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 相关文章推荐
JS 容错处理代码, 屏蔽错误信息
Mar 09 Javascript
File文件控件,选中文件(图片,flash,视频)即立即预览显示
Apr 09 Javascript
Web开发者必备的12款超赞jQuery插件
Dec 03 Javascript
Javascript实现多彩雪花从天降散落效果的方法
Feb 02 Javascript
jQuery实现图片轮播特效代码分享
Sep 15 Javascript
JS添加或修改控件的样式(Class)实现方法
Oct 15 Javascript
JS FormData上传文件的设置方法
Jul 05 Javascript
详解vue中引入stylus及报错解决方法
Sep 22 Javascript
JavaScript实现的超简单计算器功能示例
Dec 23 Javascript
spring+angular实现导出excel的实现代码
Feb 27 Javascript
layui 点击重置按钮, select 并没有被重置的解决方法
Sep 03 Javascript
vue中使用element组件时事件想要传递其他参数的问题
Sep 18 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
PHP递归调用的小技巧讲解
2013/02/19 PHP
PHP实现获取域名的方法小结
2014/11/05 PHP
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
laravel5.6中的外键约束示例
2019/10/23 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
2016/02/26 Javascript
如何判断出一个js对象是否一个dom对象
2016/11/24 Javascript
nodejs操作mongodb的增删改查功能实例
2017/11/09 NodeJs
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
python中将字典转换成其json字符串
2014/07/16 Python
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
Python实现破解12306图片验证码的方法分析
2017/12/29 Python
python读取Excel实例详解
2018/08/17 Python
python入门:这篇文章带你直接学会python
2018/09/14 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
pytz格式化北京时间多出6分钟问题的解决方法
2019/06/21 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
python命令 -u参数用法解析
2019/10/24 Python
Python 类的魔法属性用法实例分析
2019/11/21 Python
Python查找不限层级Json数据中某个key或者value的路径方式
2020/02/27 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
业务经理岗位职责
2013/11/11 职场文书
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
关于廉洁的广播稿
2014/01/30 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
中学生社会实践活动总结
2014/07/03 职场文书
廉政文化进校园广播稿
2014/10/20 职场文书