无论在输入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,则可以验证。在显示时,可以格式化。