给定 XML,例如:
<a>
<b>
<c>some keyword</c>
</b>
</a>
如果节点 c 包含文本“关键字”,我需要将新节点添加到 a 的父节点,所以它看起来像
<a>
<b>
<c>some keyword</c>
</b>
</a>
<x> new node X </x>
我可以将文本与表达式匹配:
<xsl:template match="//a/b/c[matches(text(),'\.*keyword\.*')]">
<xsl:copy-of select="."/>
<xsl:element name="x">
<xsl:text> new node </xsl:text>
</xsl:element>
</xsl:template>
这导致
<a>
<b>
<c>some keyword</c>
<x> new node X </x>
</b>
</a>
我该如何解决?