`
javaz
  • 浏览: 32405 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

使用js对xml格式的字符串进行格式化输出。

    博客分类:
  • XML
阅读更多
//格式化xml
	function formatXml(){
           var str = $('xml').value;		
         //去除输入框中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("jsp/xmlStyle.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;
		   $('xml').value =finalStr;
	}

   除上述的js代码之外,还需要创建一个xsl格式文件。

<?xml version="1.0" ?>
  <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全部属性以及任何类型的节点。

 

    对于各个节点的作用以及使用,可以访问

    http://www.w3school.com.cn/xsl/xsl_w3celementref.asp 。里面讲的都很细致。

 

 

 

 

 

分享到:
评论
2 楼 javaz 2010-05-14  
guojianpeng9806 写道
功能很强大,值得学习

谢谢夸奖。。呵呵呵。
1 楼 guojianpeng9806 2010-05-14  
功能很强大,值得学习

相关推荐

    格式化xml字符串,并生成xml文件

    NULL 博文链接:https://huahua2691.iteye.com/blog/1668842

    EMeditor使用JSEE一键格式化XML Format

    EMeditor使用JSEE格式化XML Format 一键格式化 使用方法: 1. 选择要format的文件,文件内容全选 2. 菜单【选择】,选择jsee文件 3.完成

    Javascript格式化并高亮xml字符串的方法及注意事项

    两个关键点 1.使用DOMParser解析xml 2.递归遍历xml树,按格式输出每一个节点 关于使用DOMParser 此方法目前在IE9以上和其它浏览器里都是支持的,所以这里不在写关于IE9以下不支持的情况, 具体的使用请跳转 ...

    XMLFormatter.jsee

    用于EmEditor文本编辑器中对xml报文进行格式化显示,先选中待格式化字符串,再点击“宏”,选择“XMLFormatter”,既可实现xml节点上下对齐,组织结构一目了然,方便实用

    实例分析nodejs模块xml2js解析xml过程中遇到的坑

    本文实例讲述了nodejs模块xml2js解析xml过程中遇到的坑。分享给大家供大家参考,具体如下: 在一个项目中,用到nodejs模块xml2js解析xml,xml的...本来xml中包的是一个字符串,结果解析出来的是数组。 后来查了xml2js

    PHP函数库,PHP函数大全,PHP函数实例,PHP函数手册,PHP5函数库实例

    对要输出的字符串进行反转换 对输入JS进行转换 寻找两个函数所有不同的元素 寻找两数组所有不同元素 得到文件类型 截取字符串中两个特定唯一字符之间的内容 截取指定长度字符串 折线图 按照比例改变图片大小...

    前端助手FeHelper插件

    Json串格式化(粘贴文本、手动格式化) Json页面美化(页面自动检测并格式化,强制开启) 二维码生成器(支持当前页面生成QrCode) 页面取色工具(滑动鼠标随意取色) Js正则表达式(正则测试、常用正则列表) 时间...

    js扩展基础类

    * 格式化字符串${0} -&gt; 参考printf %s **/ String.prototype.format = function() { var args = arguments; return this.replace(/\$\{(\d+)\}/g, function(m, i){ return args[i]; });...

    PHP论文格式化系统-前台的设计与实现(源代码+论文).zip

    该系统用javascrit脚本在客户端封装表单里面的数据并将这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    单独用XMl不能显示页面,我们使用格式化技术,比如CSS或者XSL,才能显示XML标记创建的文档。 我们在前面第一章讲到XML是将数据和格式分离的。XML文档本身不知道如何来显示,必须有辅助文件来帮助实现。(XML取消了...

    PHP论文格式化系统-前台的设计与实现(源代码+论文)

    该系统用javascrit脚本在客户端封装表单里面的数据并将这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...

    PHP论文格式化系统——前台的设计与实现毕业设计毕业论文

    该系统用javascrit脚本在客户端封装表单里面的数据并将这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...

    论文格式化系统-前台的设计与实现

    该系统用javascrit脚本在客户端封装表单里面的数据并将这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...

    PHP论文格式化系统-前台的设计与实现(源代码+毕设文档).zip

    该系统用javascrit脚本在客户端封装表单里面的数据并将这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...

    XML4MAT v2.0:将 XML 与 MATLAB 结构化变量相互转换。-matlab开发

    MATLAB 结构化变量和 XML 字符串之间的相互转换。 定义了一种标记语言以支持任何 MATLAB 变量的字符串表示。 附加的 m 函数支持任何 XML 结构的导入。 最后一张图:任何 XML --&gt; MbML &lt;--&gt; MATLAB。 描述 ...

    reekoh-formatters:Reekoh 格式化程序

    来自设备的原始数据有多种不同的格式,例如: CSV 或逗号分隔的字符串TSV 或制表符分隔的字符串JSON 字符串XML 字符串其他解释器的工作是使用原始数据并将其转换为 JavaScript 对象 (JSON)。代码格式 exports . ...

    DWR.xml配置文件说明书(含源码)

    客户端的javascript将返回给reply对象(此时reply是java.util.date的字符串形式) 3.5 The 'scripted' Creator DWR 已经默认配置了scripted creator配置, 这种类型的creator采用BSF执行脚本语言并返回bean.例如 ......

    ActionScript开发人员指南中文版

    对字符串使用正则表达式的方法 正则表达式示例:Wiki解析程序 第章:使用XML XML基础知识 用于处理XML的EX方法 XML对象 XMLList对象 初始化XML变量 组合和变换XML对象 遍历XML结构 使用XML命名空间 XML类型转换 读取...

Global site tag (gtag.js) - Google Analytics