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

Xml XSLT-查找元素中的数字范围,xml,xslt,Xml,Xslt,我的输入XML是 <link idref="r164">2004</link> 2004 产出应该是, <link idref="r164" target="literature">2004</link> 2004 条件是属性“idref”值应以“r”开头,链接元素仅包含4位数字,然后我们应添加属性“target=”literature“ 请您指导我们解决此问题。您可以创建一个模板,如下所示 <xsl:template match="

我的输入XML是

<link idref="r164">2004</link>
2004
产出应该是,

<link idref="r164" target="literature">2004</link>
2004
条件是属性“idref”值应以“r”开头,链接元素仅包含4位数字,然后我们应添加属性“target=”literature“


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

您可以创建一个模板,如下所示

<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>

感谢您的快速回复。