<?xml version="1.0" encoding="UTF-8"?> <!-- To change this template, choose Tools | Templates and open the template in the editor. --> <?xml-stylesheet type="text/xsl" href="formnewstylesheet.xsl"?> <root> <paraset name="全局参数" rowspan="3"> <paras name="系统参数" colspan="2"> <para name="TPID" opertype="equale">888</para> <para name="BBB" opertype="exist">777,666</para> </paras> <paras name="PON" colspan="2"> <para name="TPID">6666</para> <para name="BBB">5555</para> </paras> </paraset> <paraset name="SNMP" rowspan="2"> <para name="TPID1">1111111111111111</para> <para name="BBB1">2</para> <para name="TPID2">3</para> <para name="BBB2">4</para> </paraset> <paraset name="VLAN" rowspan="2"> <para name="VLANID">1111111111111111</para> <para name="上行口">2</para> <para name="类型">3</para> <para name="属性">4</para> </paraset> </root>
转换文件
<?xml version="1.0" encoding="UTF-8"?> <!-- Document : newstylesheet.xsl Created on : 2012年2月26日, 上午11:06 Author : Administrator Description: Purpose of transformation follows. --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="html"/> <!-- TODO customize transformation rules syntax recommendation http://www.w3.org/TR/xslt --> <xsl:template match="/"> <html> <head> <title>newstylesheet.xsl</title> </head> <body> <table border="1"> <xsl:for-each select="root/paraset"> <tr> <!-- 第一列的值是参数 --> <td> <xsl:attribute name="rowspan"> <xsl:value-of select="@rowspan"/> </xsl:attribute> <xsl:value-of select="@name"/> </td> <xsl:choose> <!-- 有paras标签的显示paras名称为标题 --> <xsl:when test="count(paras)>0"> <xsl:for-each select="paras"> <td> <xsl:attribute name="colspan"> <xsl:value-of select="@colspan"/> </xsl:attribute> <xsl:value-of select="@name"/> </td> </xsl:for-each> </xsl:when> <!-- 没有paras的标签显示名称为标题 --> <xsl:otherwise> <xsl:for-each select="para"> <td><xsl:value-of select="@name"/></td> </xsl:for-each> </xsl:otherwise> </xsl:choose> </tr> <!-- 把paras下的para标签名称显示为标题 --> <xsl:choose> <xsl:when test="count(paras)>0"> <tr> <xsl:for-each select="paras/para"> <td ><xsl:value-of select="@name"/></td> </xsl:for-each> </tr> </xsl:when> </xsl:choose> <tr> <!-- 显示para的值 --> <xsl:choose> <!-- 显示paras/para的值 --> <xsl:when test="count(paras)>0"> <xsl:for-each select="paras/para"> <td ><xsl:value-of select="."/></td> </xsl:for-each> </xsl:when> <!-- 显示paras/para的值 --> <xsl:when test="count(paras)=0"> <xsl:for-each select="para"> <td ><xsl:value-of select="."/></td> </xsl:for-each> </xsl:when> </xsl:choose> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
xslt 转换例子
最新推荐文章于 2018-11-27 10:46:33 发布