XSLT - 查找元素中的数字范围

时间:2017-10-24 05:54:02

标签: xml xslt

我的输入XML是,

<link idref="r164">2004</link>

输出应该是,

<link idref="r164" target="literature">2004</link>

条件属性“idref”值应该以“r”开头,链接元素只包含4位数,那么我们应该添加属性“target =”literature“”。

请您指导我们解决此问题。

1 个答案:

答案 0 :(得分:1)

您可以创建如下模板。

<xsl:template match="link">
    <xsl:copy>
        <xsl:if test="starts-with(@idref, 'r') and string-length(.) = 4">
            <xsl:copy-of select="@*" />
            <xsl:attribute name="target">
                <xsl:value-of select="'literature'" />
            </xsl:attribute>
            <xsl:value-of select="." />
        </xsl:if>
    </xsl:copy>
</xsl:template>