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