请建议。
如何在Starts-with Function中放置多个'或'条件。
开始-with.xml
<root>
<Author><fnm>Kishan</fnm><snm>Thondaman</snm></Author>
<Author><fnm>Arun</fnm><snm>Mechiri</snm></Author>
<Author><fnm>Raju</fnm><snm>Bhaskar</snm></Author>
<Author><fnm>Mahesh</fnm><snm>Kumar</snm></Author>
<Author><fnm>Deepa</fnm><snm>Pandith</snm></Author>
<Author><fnm>Divya</fnm><snm>Pandith</snm></Author>
<Author><fnm>Vinay</fnm><snm>Mechiri</snm></Author>
<Author><fnm>Dishanth</fnm><snm>Bhaskar</snm></Author>
<Author><fnm>Gagan</fnm><snm>Thondaman</snm></Author>
</root>
开始-with.xsl
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@* | node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="@*">
<xsl:attribute name="{local-name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
<xsl:template match="Author">
<xsl:choose>
<xsl:when test="starts-with(snm, 'Thondaman')">
<b><xsl:copy-of select="."/></b>
</xsl:when>
<xsl:when test="starts-with(snm, 'Mechiri')">
<b><xsl:copy-of select="."/></b>
</xsl:when>
<xsl:when test="starts-with(snm, 'Pandith')">
<i><xsl:copy-of select="."/></i>
</xsl:when>
<xsl:when test="starts-with(snm, 'Bhaskar')">
<i><xsl:copy-of select="."/></i>
</xsl:when>
<xsl:otherwise><xsl:copy-of select="."/></xsl:otherwise>
</xsl:choose>
</xsl:template>
必需的XSLT标记:一个Starts-with中的两个或更多“OR”条件,而不是单个find。
<xsl:when test="starts-with(snm, '(Thondaman|Mechiri)')">
<b><xsl:copy-of select="."/></b>
</xsl:when>
答案 0 :(得分:1)
自然:
starts-with(snm, 'Mechiri') or starts-with(snm, 'Thondaman')
使用XSLT 2.0,您还可以使用正则表达式(通过fn:matches()
),但starts-with()
本身仅支持固定字符串。