当前位置: 首页 > 图文教程 > 网络编程 > Javascript > firefo xml 读写实现js代码

Javascript
仿51JOB的地区选择效果(可选择多个地区)
Javascript打印网页部分内容的脚本
Ext面向对象开发实践(续)
js的闭包的一个示例说明
javascript 字符串连接的性能问题(多浏览器)
JavaScript脚本性能优化注意事项
js电信网通双线自动选择技巧
js DIV滚动条随机位置的设置技巧
Javascript日期对象的dateAdd与dateDiff方法
小试JavaScript多线程
jquery $.ajax入门应用一
JS 俄罗斯方块完美注释版代码
JavaScript在IE中“意外地调用了方法或属性访问”
设置下载不需要倒计时cookie(倒计时代码)
拖拉表格的JS函数
js刷新框架子页面的七种方法代码
FireFox与IE 下js兼容触发click事件的代码
js利用div背景,做一个竖线的效果。
javascript 贪吃蛇实现代码
JavaScript无提示关闭窗口(兼容IE/Firefox/Chrome)

Javascript 中的 firefo xml 读写实现js代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 237 ::
收藏到网摘: n/a

firefo xml 读写实现 不过要是你的xml要编码成功还得在str前面加上xml头,千万别忘了啊。 一 读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头,千万别忘了啊。