无论是在输入xml字符串还是显示xml字符串,都不可避免的判断xml的正确性。
以下是js格式化xml字符串,当然在输入页面可以利用此js来判断输入的是否正确。
格式化的js:
//格式化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;
}
注意:除了xml还需要一个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>