如何从节点中删除文本

时间:2014-06-16 20:24:02

标签: xslt-2.0

我有一个包含<h2>This is a <a href="....">nice</a> text (12.4)</h2>的节点,我想在括号之间删除内容然后应用模板:

<xsl:apply-templates select="."/>

(dot有节点,我想保留<a>,但我可以用另一个模板做到这一点)

如何在select属性中执行此操作?

<xsl:apply-templates select="replace(. , '\([0-9\.]*\)', '' )"/>不起作用,我知道,因为节点不是字符串。

1 个答案:

答案 0 :(得分:0)

在文本节点上使用该功能,例如

<xsl:template match="text()"><xsl:value-of select="replace(. , '\([0-9\.]*\)', '' )"/></xsl:template>

当然,您需要确保使用apply-templates处理文本节点,但是您应该已经看到了使用身份转换模板及其覆盖的足够示例,以便将其弄清楚。

如果需要,您当然可以根据需要将匹配模式细化为match="h2//text()"