在線(或外部)圖:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:local="http://localhost">
<local:map letter="E" text="Edit"/>
<local:map letter="D" text="Delete"/>
<local:map letter="A" text="Add"/>
<local:map letter="R" text="Read"/>
<xsl:template match="test">
<xsl:copy>
<xsl:apply-templates
select="document('')/*/local:map[
contains(current(),@letter)
]/@text"
mode="sequence"/>
</xsl:copy>
</xsl:template>
<xsl:template match="node()|@*" mode="sequence">
<xsl:value-of select="concat(substring(' ', 1 div (position()!=1)),.)"/>
</xsl:template>
</xsl:stylesheet>
輸出:
<test>Edit Delete Add Read</test>
序列的xsl:if
說明:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="test">
<xsl:copy>
<xsl:if test="contains(.,'E')">Edit </xsl:if>
<xsl:if test="contains(.,'D')">Delete </xsl:if>
<xsl:if test="contains(.,'A')">Add </xsl:if>
<xsl:if test="contains(.,'R')">Read </xsl:if>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
輸出:
<test>Edit Delete Add Read </test>
是的,它只會包含E,d,A,R。這似乎是一個更容易的方法! – 2011-04-12 15:12:27
這並不能解決**每個字母**的問題。 – 2011-04-12 22:35:56
@Alejandro,它會對每個''進行測試嗎?或者當其中一個子句匹配時,是否突破''? –
2011-04-12 22:48:27