//格式化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 。里面讲的都很细致。
分享到:
相关推荐
NULL 博文链接:https://huahua2691.iteye.com/blog/1668842
EMeditor使用JSEE格式化XML Format 一键格式化 使用方法: 1. 选择要format的文件,文件内容全选 2. 菜单【选择】,选择jsee文件 3.完成
两个关键点 1.使用DOMParser解析xml 2.递归遍历xml树,按格式输出每一个节点 关于使用DOMParser 此方法目前在IE9以上和其它浏览器里都是支持的,所以这里不在写关于IE9以下不支持的情况, 具体的使用请跳转 ...
用于EmEditor文本编辑器中对xml报文进行格式化显示,先选中待格式化字符串,再点击“宏”,选择“XMLFormatter”,既可实现xml节点上下对齐,组织结构一目了然,方便实用
本文实例讲述了nodejs模块xml2js解析xml过程中遇到的坑。分享给大家供大家参考,具体如下: 在一个项目中,用到nodejs模块xml2js解析xml,xml的...本来xml中包的是一个字符串,结果解析出来的是数组。 后来查了xml2js
对要输出的字符串进行反转换 对输入JS进行转换 寻找两个函数所有不同的元素 寻找两数组所有不同元素 得到文件类型 截取字符串中两个特定唯一字符之间的内容 截取指定长度字符串 折线图 按照比例改变图片大小...
Json串格式化(粘贴文本、手动格式化) Json页面美化(页面自动检测并格式化,强制开启) 二维码生成器(支持当前页面生成QrCode) 页面取色工具(滑动鼠标随意取色) Js正则表达式(正则测试、常用正则列表) 时间...
* 格式化字符串${0} -> 参考printf %s **/ String.prototype.format = function() { var args = arguments; return this.replace(/\$\{(\d+)\}/g, function(m, i){ return args[i]; });...
该系统用javascrit脚本在客户端封装表单里面的数据并将这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...
单独用XMl不能显示页面,我们使用格式化技术,比如CSS或者XSL,才能显示XML标记创建的文档。 我们在前面第一章讲到XML是将数据和格式分离的。XML文档本身不知道如何来显示,必须有辅助文件来帮助实现。(XML取消了...
该系统用javascrit脚本在客户端封装表单里面的数据并将这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...
该系统用javascrit脚本在客户端封装表单里面的数据并将这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...
该系统用javascrit脚本在客户端封装表单里面的数据并将这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...
该系统用javascrit脚本在客户端封装表单里面的数据并将这些数据封装成xml字符串,然后发送这个字符串给服务器。在接收到送服务器端发送来的xml之后,系统用javascript脚本解析xml然后填写到表单中去。他们可以按时的...
MATLAB 结构化变量和 XML 字符串之间的相互转换。 定义了一种标记语言以支持任何 MATLAB 变量的字符串表示。 附加的 m 函数支持任何 XML 结构的导入。 最后一张图:任何 XML --> MbML <--> MATLAB。 描述 ...
来自设备的原始数据有多种不同的格式,例如: CSV 或逗号分隔的字符串TSV 或制表符分隔的字符串JSON 字符串XML 字符串其他解释器的工作是使用原始数据并将其转换为 JavaScript 对象 (JSON)。代码格式 exports . ...
客户端的javascript将返回给reply对象(此时reply是java.util.date的字符串形式) 3.5 The 'scripted' Creator DWR 已经默认配置了scripted creator配置, 这种类型的creator采用BSF执行脚本语言并返回bean.例如 ......
对字符串使用正则表达式的方法 正则表达式示例:Wiki解析程序 第章:使用XML XML基础知识 用于处理XML的EX方法 XML对象 XMLList对象 初始化XML变量 组合和变换XML对象 遍历XML结构 使用XML命名空间 XML类型转换 读取...