javascript创建XML对象转换为字符串,创建字符串转换为XML对象
原文地址:http://iceworldvip.blog.51cto.com/5438460/1341677
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://iceworldvip.blog.51cto.com/5438460/1341677
今天使用FusionCharts遇到了一个问题,由于情况限制,我只可以使用javascript来完成Data.xml的准备,需要动态生成。
那么就需要手动创建一个XML对象,并且转换字符串。这样可以避免强行使用字符串拼接的方法。
好了废话不多说了。直接看代码:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function createXMLDOM() { var xmlDOM; if (window.ActiveXObject) { xmlDOM = new ActiveXObject('Microsoft.XMLDOM'); } else if (document.implementation && document.implementation.createDocument) { xmlDOM = document.implementation.createDocument('', '', null); } else { alert('您的浏览器不支持文档对象XMLDOM'); return; } return xmlDOM;} |
这段代码可以支持大部分浏览器,所以调用之后可以直接得到XMLDOM对象:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
/** * 创建XML 文件例子: * <graph> * <set name='1' value='1'></set> * <set name='2' value='2'></set> * </graph> */function createXML() { var xmlDOM = createXMLDOM(); if (xmlDOM) { var graph = xmlDOM.createElement('graph'); for (var i = 0; i < 2; i++) { var set_name_value = xmlDOM.createElement('set'); set_name_value.setAttribute('name', i + 1); set_name_value.setAttribute('value', i + 1); graph.appendChild(set_name_value); } xmlDOM.appendChild(graph); return parserXMLToString(xmlDOM); } return;} |
接下来是解析:
|
1
2
3
4
5
6
7
8
|
function parserXMLToString(xmlDOM) { if (window.ActiveXObject) { return xmlDOM.xml; } else if (document.implementation && document.implementation.createDocument) { return new XMLSerializer().serializeToString(xmlDOM); }} |
这里的xmlDOM.xml没有测试,下面的方法经过测试。
下面是从String转换为xmlDOM对象:
|
1
2
3
4
5
|
function parserStringToXMLDOM(str) { var parser = new DOMParser(); var xmlDOM = parser.parseFromString(str, 'text/xml'); return xmlDOM;} |
这样就可以在javascript中完成xml与String之间的转换了。
本文出自 “iceworldvip” 博客,请务必保留此出处http://iceworldvip.blog.51cto.com/5438460/1341677
浙公网安备 33010602011771号