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;

}




需要建立一个format.xsl文件如下: 

<?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>



omit-xml-declaration = "yes"

    可选。 "yes" 规定在输出中省略 XML 声明 (<?xml...?>)。 "no" 规定应在输出中包含 XML 声明。默认是 "no"。

 

 

indent = "yes"

    可选。在输出结果树时是否要增加空白;该值必须为 yes 或 no。Netscape 6 不支持该属性。 

 

 

 <xsl:template match="/ | @* | node()"> 

    match中内容定义该模板包括 xml的全部分支,包括节点和属性。

 

 

<xsl:copy>

   将中间的内容拷贝到输出文件。

 

 

 <xsl:apply-templates select="@* | node()"/> 

    <xsl:apply-templates> 元素可把一个模板应用于当前的元素或者当前元素的子节点。

    这里选择的xpath为xml全部属性以及任何类型的节点。

 




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值