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

functioncreateXMLDOM() {

varxmlDOM;

if(window.ActiveXObject) {

xmlDOM =newActiveXObject('Microsoft.XMLDOM');

}elseif(document.implementation

&& document.implementation.createDocument) {

xmlDOM = document.implementation.createDocument('','',null);

}else{

alert('您的浏览器不支持文档对象XMLDOM');

return;

}

returnxmlDOM;

}

这段代码可以支持大部分浏览器,所以调用之后可以直接得到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>

*/

functioncreateXML() {

varxmlDOM = createXMLDOM();

if(xmlDOM) {

vargraph = xmlDOM.createElement('graph');

for(vari = 0; i < 2; i++) {

varset_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);

returnparserXMLToString(xmlDOM);

}

return;

}

接下来是解析:

1

2

3

4

5

6

7

8

functionparserXMLToString(xmlDOM) {

if(window.ActiveXObject) {

returnxmlDOM.xml;

}elseif(document.implementation

&& document.implementation.createDocument) {

returnnewXMLSerializer().serializeToString(xmlDOM);

}

}

这里的xmlDOM.xml没有测试,下面的方法经过测试。

下面是从String转换为xmlDOM对象:

1

2

3

4

5

functionparserStringToXMLDOM(str) {

varparser =newDOMParser();

varxmlDOM = parser.parseFromString(str,'text/xml');

returnxmlDOM;

}

这样就可以在javascript中完成xml与String之间的转换了。

本文出自 “iceworldvip” 博客,请务必保留此出处http://iceworldvip.blog.51cto.com/5438460/1341677