最近在开发项目时遇到了一个需求,从数据库查询出来的xml报文的字符串需要解析处参数来,在页面上支持修改,所以催生了利用JavaScript来实现解析XML文本的功能。
具体思路是现获取XML的DOM对象,然后再通过遍历和递归获取子元素的nodeValue,来拼接出JSON字符串。
通过XML字符串来生成XML的DOM对象:
/**
* 通过传入xml的内容字符串来解析xml
* @param xmlString xml字符串
* @returns xml的Document对象
*/
function getXmlDocumentByXmlString(xmlString) {
var xmlDoc = null;
if (window.DOMParser) {
var parser = new DOMParser();
xmlDoc = parser.parseFromString(xmlString, "text/xml");
} else {
//IE
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = "false";
xmlDoc.loadXML(xmlString);
}
return xmlDoc;
}
或者通过请求XML文件来获取XML的DOM对象: