这是我实际应用中的例子: 原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>

解决方案 »

  1.   

    多谢!如何建立一种通用的可以转换任意两种格式的XSL呢?
    或者如何可以根据两边的schema来用程序动态建立XSL?
      

  2.   

    通用的,估计是比较难的,要做到通用的话,对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语法方面的资料.
      

  3.   

    再谢过目前有什么可操作XSL的组件和技术吗?