Xml 剥离(从链接剥离,同时剥离子链接)

Xml 剥离(从链接剥离,同时剥离子链接),xml,xslt-2.0,Xml,Xslt 2.0,在执行样式表期间,我有一个如下节点: ) 我使用此模板剥离内部: 工作起来很有魅力。 但我也希望去掉(和) 如何做到这一点?在文本节点上使用模板,例如 <xsl:template match="a/text()[ends-with(., '(') and following-sibling::node()[1][self::a]]"> <xsl:value-of select="substring(., 1, string-length() - 1)"/> <

在执行样式表期间,我有一个如下节点:

我使用此模板剥离内部:

工作起来很有魅力。 但我也希望去掉(和)


如何做到这一点?

在文本节点上使用模板,例如

<xsl:template match="a/text()[ends-with(., '(') and following-sibling::node()[1][self::a]]">
  <xsl:value-of select="substring(., 1, string-length() - 1)"/>
</xsl:template>

<xsl:template match="a/text()[starts-with(., ')') and preceding-sibling::node()[1][self::a]]">
  <xsl:value-of select="substring(., 2)"/>
</xsl:template>

谢谢。你的解决方案让我走上了这条路,这也为我带来了好处:

<xsl:template match="a/text()[ contains( . , '(') or contains(. , ')') ]">
    <xsl:value-of select="replace(. , '[()]' , '')"/>
</xsl:template>


奇怪的是,“contains”不能有类似于“replace”的regexpr。

contains
是在不支持正则表达式的XPath 1.0中引入的。XPath 2.0具有
matches
函数,可以在需要时使用正则表达式。