原文地址: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 | 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