xslt 语法简单应用及调试方法
2011-07-20 10:25
218 查看
公司用到应用集成平台,有webservice适配器,用起来还算方便,其中会接触到xslt的语法
维基百科的解释:
http://zh.wikipedia.org/wiki/XSLT
就是根据模板将XML 报文转换成MML串(a=1,b=2,c=3),
语法到也算简单,不过开始调试的时候很费力,后来发现 XMLSPY工具非常好用,下面就介绍下使用方法。
1. 首先编辑好xslt配置文件(附录1)
2. 选择转换,或者按F10
3. 选择需要解析的xml文件
4. 查看解析后的输出文件
结果为:head=|||userid=ID1||userid=ID2|userid=test,
5. 如果需要的话还可以进行单步调试,快捷键F11
6. 可以查看定义的变量值以及调用堆栈。
方便快捷的应用集成平台,但缺少灵活性。
附录1:转换的xslt文件<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xalan="http://xml.apache.org/xalan" version="2.0"> <xsl:output method="text"/> <xsl:strip-space elements="*"/> <xsl:template match="/"> <xsl:variable name="userid" select="text()"/> <xsl:variable name="tmpkey" select="text()"/> <xsl:variable name="tmpvalue" select="text()"/> <xsl:variable name="outstr" select="'userid='"/> <xsl:text>head=</xsl:text> <xsl:for-each select="//response/body/values/object/parameter"> <!--> <xsl:value-of select="/appField"/> <xsl:value-of select="/FieldValue"/> <--> <xsl:variable name="index1" select="position()"/> <xsl:if test="compare(appField,'userid')=0"> <xsl:variable name="userid" select="FieldValue"/> <xsl:variable name="tmpkey" select="appField"/> <xsl:variable name="outstr" select="concat($outstr,$userid)"/> <xsl:value-of select="$outstr"/> </xsl:if> <xsl:if test="$index1!=last()"> <xsl:text>|</xsl:text> </xsl:if> </xsl:for-each> <xsl:variable name="outstr" select="concat($outstr,'test')"/> <xsl:value-of select="$outstr"/> <xsl:text>,</xsl:text> </xsl:template></xsl:stylesheet>
维基百科的解释:
http://zh.wikipedia.org/wiki/XSLT
就是根据模板将XML 报文转换成MML串(a=1,b=2,c=3),
语法到也算简单,不过开始调试的时候很费力,后来发现 XMLSPY工具非常好用,下面就介绍下使用方法。
1. 首先编辑好xslt配置文件(附录1)
2. 选择转换,或者按F10
3. 选择需要解析的xml文件
4. 查看解析后的输出文件
结果为:head=|||userid=ID1||userid=ID2|userid=test,
5. 如果需要的话还可以进行单步调试,快捷键F11
6. 可以查看定义的变量值以及调用堆栈。
方便快捷的应用集成平台,但缺少灵活性。
附录1:转换的xslt文件<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:xalan="http://xml.apache.org/xalan" version="2.0"> <xsl:output method="text"/> <xsl:strip-space elements="*"/> <xsl:template match="/"> <xsl:variable name="userid" select="text()"/> <xsl:variable name="tmpkey" select="text()"/> <xsl:variable name="tmpvalue" select="text()"/> <xsl:variable name="outstr" select="'userid='"/> <xsl:text>head=</xsl:text> <xsl:for-each select="//response/body/values/object/parameter"> <!--> <xsl:value-of select="/appField"/> <xsl:value-of select="/FieldValue"/> <--> <xsl:variable name="index1" select="position()"/> <xsl:if test="compare(appField,'userid')=0"> <xsl:variable name="userid" select="FieldValue"/> <xsl:variable name="tmpkey" select="appField"/> <xsl:variable name="outstr" select="concat($outstr,$userid)"/> <xsl:value-of select="$outstr"/> </xsl:if> <xsl:if test="$index1!=last()"> <xsl:text>|</xsl:text> </xsl:if> </xsl:for-each> <xsl:variable name="outstr" select="concat($outstr,'test')"/> <xsl:value-of select="$outstr"/> <xsl:text>,</xsl:text> </xsl:template></xsl:stylesheet>
相关文章推荐
- Android模拟内存紧张,应用被杀死如何模拟应用程序被杀掉? 更新:Daniel Lew指出,最简单的方法是在DDMS中点击”Stop Porcess”杀掉你的程序,在你调试程序的时候可以这样做。
- 会话、保存会话方法之Cookie、简单的Cookie应用(直观详细)
- WIN32汇编程序的编译方法,环境配置,make的简单应用
- xcode联机调试最简单的方法/xcode真机调试最简单的方法
- 调试windows服务最简单的方法之一
- 使用Memcache在PHP中调试方法的介绍及应用
- CQL IN 语法的应用方法
- 超简单的NDK单步调试方法
- mavn构建的web工程中嵌入/集成jetty 开发调试方便 较简单的方法一
- Web应用中防止用户重复登录的简单实现方法
- .NET下一种简单的调试诊断方法
- 使用Chrome浏览器调试AngularJS应用的方法
- Android应用方法隐藏及反调试技术浅析
- 使用Memcache在PHP中调试方法的介绍及应用
- 2.6内核Makefile简单语法与应用
- 超简单的NDK单步调试方法
- 微信小程序(应用号)调试工具内测破解方法
- linux0.11学习笔记-技术铺垫-简单AB任务切换程序(3)-调试手段和方法
- [RK3399][Android7.1] 调试笔记 --- 检测应用是32还是64位方法
- 用jar命令将Web应用打包成war文件的简单方法