这是我实际应用中的例子: 原xml格式如下
<?xml version="1.0" encoding="gb2312" ?>
<?xml-stylesheet type="text/xsl" href="number.xsl"?>
<ResponseInfo>
<RefId>0</RefId>
<StatusCode>aaa</StatusCode>
<ErrorMessage>No Error Message</ErrorMessage>
</ResponseInfo>
期望目标格式如下:
<?xml version="1.0" encoding="utf-8"?>
<Number>0</Number>
xsl文件如下
<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:decimal-format NaN="0"/>
<xsl:template match="/">
<xsl:variable name="SiteRole" select="format-number(ResponseInfo/StatusCode, '0.00')" />
<Number>
<xsl:value-of select="$SiteRole"/>
</Number>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="gb2312" ?>
<?xml-stylesheet type="text/xsl" href="number.xsl"?>
<ResponseInfo>
<RefId>0</RefId>
<StatusCode>aaa</StatusCode>
<ErrorMessage>No Error Message</ErrorMessage>
</ResponseInfo>
期望目标格式如下:
<?xml version="1.0" encoding="utf-8"?>
<Number>0</Number>
xsl文件如下
<?xml version="1.0" encoding="gb2312" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:decimal-format NaN="0"/>
<xsl:template match="/">
<xsl:variable name="SiteRole" select="format-number(ResponseInfo/StatusCode, '0.00')" />
<Number>
<xsl:value-of select="$SiteRole"/>
</Number>
</xsl:template>
</xsl:stylesheet>
或者如何可以根据两边的schema来用程序动态建立XSL?
其实对于实际的应用,复杂点的,你可以在xsl中使用条件判断的,如:
<xsl:choose> <xsl:when test="Page/Main/UserInfo/LoginID=''">
</xsl:when>
<xsl:when test="$SiteRole='Manager'">
</xsl:when>
</xsl:when>
<xsl:otherwise>
</xsl:otherwise>
</xsl:choose>
就好象switch语句一样的, 还有很多的语句, 建议看看xsl语法方面的资料.