您好,欢迎访问一九零五行业门户网

firefo xml 读写实现js代码_javascript技巧

一 读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文件的头
//
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);
// 创建的结果如下
张三李四
这样生成的xmldom结构通过系列化转化为xml字符串时不会自动缩进,但通过xml对象解析下就可以了。
var serializer = components.classes[@mozilla.org/xmlextras/xmlserializer;1].createinstance(components.interfaces.nsidomserializer);
// 解析domxml结构到xml字符串
// 要xml对象解析成功必须将xml头去掉
// 去掉xml头
var xmldeclaration = /^]+?>/;
var str = new xml( serializer.serializetostring(xmldoc).replace(xmldeclaration, '') ).toxmlstring();
哈哈,现在的str就是能够自动缩进的xml字符串了。不过要是你的xml要编码成功还得在str前面加上xml头,千万别忘了啊。
其它类似信息

推荐信息