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 option删除代码集合
Nov 12 Javascript
ExtJS 2.0 实用简明教程之布局概述
Apr 29 Javascript
使用jquery动态加载javascript以减少服务器压力
Oct 29 Javascript
js setTimeout opener的用法示例详解
Oct 23 Javascript
CSS或者JS实现鼠标悬停显示另一元素
Jan 22 Javascript
JavaScript中的Number数字类型学习笔记
May 26 Javascript
浅谈react.js 之 批量添加与删除功能
Apr 17 Javascript
详解AngularJS ui-sref的简单使用
Apr 24 Javascript
AngularJs导出数据到Excel的示例代码
Aug 11 Javascript
Vue函数式组件-你值得拥有
May 09 Javascript
在vue中实现禁止回退上一步,路由不存历史记录
Jul 22 Javascript
使用node-media-server搭建一个简易的流媒体服务器
Jan 20 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中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
PHP实现的策略模式简单示例
2017/08/25 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
jquery的键盘事件修改代码
2011/02/24 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
基于jquery实现省市联动效果
2015/11/23 Javascript
JS中使用DOM来控制HTML元素
2016/07/31 Javascript
js生成随机颜色方法代码分享(三种)
2016/12/29 Javascript
JS中的算法与数据结构之链表(Linked-list)实例详解
2019/08/20 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
python常用函数详解
2016/09/13 Python
Python2中文处理纪要的实现方法
2018/03/10 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
vue学习笔记之动态组件和v-once指令简单示例
2020/02/29 Python
python爬虫中的url下载器用法详解
2020/11/30 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
美国汽车交易网站:Edmunds
2016/08/17 全球购物
大学活动策划书范文
2014/01/10 职场文书
浙江文明网签名寄语
2014/01/18 职场文书
企业宣传工作方案
2014/06/02 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
三年级学生评语大全
2014/12/26 职场文书
企业介绍信范文
2015/01/30 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python