xslt 转换例子

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





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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值