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 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
JSON 入门指南 想了解json的朋友可以看下
Aug 26 Javascript
javascript 静态对象和构造函数的使用和公私问题
Mar 02 Javascript
Jquery实现简单的动画效果代码
Mar 18 Javascript
JQuery结合CSS操作打印样式的方法
Dec 24 Javascript
使用js完成节点的增删改复制等的操作
Jan 02 Javascript
jquery无法设置checkbox选中即没有变成选中状态
Mar 27 Javascript
项目中常用的JS方法整理
Jan 30 Javascript
JS DOM实现鼠标滑动图片效果
Sep 17 Javascript
xmlplus组件设计系列之路由(ViewStack)(7)
May 02 Javascript
从零开始最小实现react服务器渲染详解
Jan 26 Javascript
jQuery操作选中select下拉框的值代码实例
Feb 07 jQuery
犀利的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安全之直接用$获取值而不$_GET 字符转义
2012/06/03 PHP
WordPress中缩略图的使用以及相关技巧
2015/11/24 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
JavaScript中常见陷阱小结
2010/04/27 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
jQuery Easyui加载表格出错时在表格中间显示自定义的提示内容
2016/12/08 Javascript
axios学习教程全攻略
2017/03/26 Javascript
bootstrap fileinput组件整合Springmvc上传图片到本地磁盘
2017/05/11 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
Python 随机生成中文验证码的实例代码
2013/03/20 Python
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
python使用筛选法计算小于给定数字的所有素数
2018/03/19 Python
python 异或加密字符串的实例
2018/10/14 Python
python的常用模块之collections模块详解
2018/12/06 Python
Python实现快速大文件比较代码解析
2020/09/04 Python
Python可视化工具如何实现动态图表
2020/10/23 Python
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
大二学生学习个人自我评价
2014/01/19 职场文书
七年级生物教学反思
2014/01/30 职场文书
中学清明节活动总结
2014/07/04 职场文书
捐款活动总结
2014/08/27 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
安全检查汇报材料
2014/12/26 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
古诗之爱国古诗5首
2019/09/20 职场文书
Opencv中cv2.floodFill算法的使用
2021/06/18 Python
pandas中pd.groupby()的用法详解
2022/06/16 Python