xsl 遍历模板

    技术2025-04-10  60

    有如下的XML结构:

    <response name="test2">                        <Status>                           <StatusCode>101</StatusCode>                           <Message>no</Message>                           <test>                             <a1>a</a1>                             <a2>b</a2>                           </test>                           <Status>Complete</Status>                        </Status>                        <UniqueID>testplayer</UniqueID>                        <Balance>12.0</Balance>                        <Currency>GBP</Currency>                        <Country>GB</Country>                        <StakeLimit>100</StakeLimit>                        <LossLimit>5</LossLimit>                        <SessionTimeout>30</SessionTimeout></response>

     

    现需要把这个response复制出来,并且把每个element前加一个namespace前缀,如ns, 则有:

     

    <xsl:template name="copyResponse" match="/*">    <xsl:param name="childNodes" select="*"/>   <xsl:for-each select="$childNodes">   <xsl:choose>  <xsl:when test="*">   <xsl:element name="ns:{name()}">    <xsl:call-template name="copyResponse">     <xsl:with-param name="childNodes" select="child::*"/>   </xsl:call-template>   </xsl:element>  </xsl:when>  <xsl:otherwise>     <xsl:element name="ns:{name()}"><xsl:value-of select="."/></xsl:element>  </xsl:otherwise>  </xsl:choose> </xsl:for-each>  </xsl:template>

    主要思想:递归。

    最新回复(0)