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

Javascript
将HTML自动转为JS代码
一端时间轮换的广告
制作特殊字的脚本
美化下拉列表
文字幻灯片
判断是否输入完毕再激活提交按钮
JS控制表格隔行变色
左右两侧的广告代码 简单
父窗口获取弹出子窗口文本框的值
网页的标准,IMG不支持onload标签怎么办
一个很简单的办法实现TD的加亮效果.
文本框栏目介绍
自动检查并替换文本框内的字符
会自动逐行上升的文本框
列表内容的选择
对textarea框的代码调试,而且功能上使用非常方便,酷
提高代码性能技巧谈—以创建千行表格为例
Javascript的IE和Firefox兼容性汇编
让插入到 innerHTML 中的 script 跑起来
DEFER怎么用?

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 222 ::
收藏到网摘: 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头,千万别忘了啊。