XSLT匹配不是多个条件

时间:2018-04-12 09:16:14

标签: xml xslt

我有以下xslt:

   <xsl:template match="DataObject[not(ends-with(@FileRef, '.cif'))]" mode="compound_links">
        <xsl:variable name="link" select="./@FileRef"/>
        <xsl:text> | </xsl:text><a data-test="compound-data-file-link">
            <xsl:attribute name="href" select="func:imgUrl('original', $link)"/>
            <xsl:apply-templates select="ancestor::DefinitionListEntry/Term" mode="markup"/></a>
    </xsl:template>

我需要扩展匹配条件,以便它不会选择.cif文件或.fcf文件。目前它只排除.cif文件。

1 个答案:

答案 0 :(得分:1)

尝试此模板匹配....

<xsl:template match="DataObject[not(ends-with(@FileRef, '.cif') or ends-with(@FileRef, '.fcf'))]" mode="compound_links">

或者,因为您必须使用XSLT 2.0才能使ends-with正常工作,所以您可以使用正则表达式,matches

<xsl:template match="DataObject[not(matches(@FileRef, '.*\.(cif|fcf)'))]" mode="compound_links">