當我執行下面的xsl時,我得到一個截斷的標籤對而不是完整的標籤(參見問題的最後)。用「xsl:value-of select」截斷標籤
原始代碼:
<xsl:template match="node()\@*">
<xsl:copy>
<xsl:apply-templates select="node()\@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="CONFIG">
<xsl:choose>
<xsl:when test=" ../ID/.='2'">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:text>STANDARD</xsl:text>
</xsl:copy>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="NAME">
<xsl:choose>
<xsl:when test=" ../ID/.='2'">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:text>DEVELOPMENT</xsl:text>
</xsl:copy>
</xsl:when>
</xsl:choose>
</xsl:template>
修改後的代碼:
<xsl:template match="node()\@*">
<xsl:copy>
<xsl:apply-templates select="node()\@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="CONFIG">
<xsl:choose>
<xsl:when test=" ../ID/.='2'">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:text>STD</xsl:text>
</xsl:copy>
<xsl:attribute name="KEY">
<xsl:value-of select='0'/>
<xsl:attribute>
<xsl:attribute name="NAME">
<xsl:value-of select="'DEVELOPMENT'"/>
<xsl:attribute>
</xsl:when>
</xsl:choose>
</xsl:template>
這樣的想法,而不是僅僅將CONFIG 「標準」,我也想給SET鍵。 而不是處理相同的「查詢」兩次,我把名稱的設置了。
KEY設置正確;但我得到的截斷 <NAME>
代替
<NAME>DEVELOPMENT</NAME>
我顯然不是一個XML的傢伙,只是在做一些維護。任何線索或建議表示讚賞。
什麼是'node()\ @ *'? – Tomalak
我懷疑反斜槓是'|' –