js格式化xml字符串

无论在输入xml字符串或显示xml字符串,都要判断xml的正确性。

以下是js格式化后台xml字符串。

//格式化xml
function formatXml(str){	
     //去除输入框中xmll两端的空格。 
       str = str.replace(/^\s+|\s+$/g,""); 
       var source = new ActiveXObject("Msxml2.DOMDocument"); 
      //装载数据 
       source.async = false; 
       source.loadXML(str);    
	   // 装载样式单 
	   var stylesheet = new ActiveXObject("Msxml2.DOMDocument"); 
	   stylesheet.async = false; 
	   stylesheet.resolveExternals = false; 
	   stylesheet.load(path+"/XlsTmpl/temp/format.xsl"); 
	   
	   // 创建结果对象 
	   var result = new ActiveXObject("Msxml2.DOMDocument"); 
	   result.async = false; 
	   
	   // 把解析结果放到结果对象中方法1 
	   source.transformNodeToObject(stylesheet, result); 
	   //alert(result.xml);
	   if(result.xml==''||result.xml==null){
			alert('xml报文格式错误,请检查');
			return false;
		   }
	   var finalStr = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> \n" +result.xml;
	   return finalStr;
}

注意:其需要一个文件xsl,使用时直接copy即可。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" omit-xml-declaration="yes" indent="yes" encoding="utf-8"/>
	<xsl:template match="/ | @* | node()">
		<xsl:copy>
			<xsl:apply-templates select="@* | node()"/>
		</xsl:copy>
	</xsl:template>
</xsl:stylesheet>

这样话,在输入时,若返回false,则可以验证。在显示时,可以格式化。

猜你喜欢

转载自blog.csdn.net/llhhyy1989/article/details/27786915