我有一个如下所示的 XML:
<doc>
<p>para<x>para</x>para<x>para</x>para</p>
<p>para<x>para</x><x>para</x>para</p>
</doc>
如果有连续放置的<x>
节点(<x>
后面跟着另一个<x>
节点),我需要在它们之间添加一个“,”号。
因此,对于上述示例XML,输出应为:
<doc>
<p>para<x>para</x>para<x>para</x>para</p>
<p>para<x>para</x>,<x>para</x>para</p>
</doc>
我尝试编写一个XSL模板,以识别连续出现的<x>
,并将逗号添加如下:
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="x[following-sibling::*[1][self::x]]">
<x>
<xsl:apply-templates/>
</x>
<xsl:text>,</xsl:text>
</xsl:template>
但它会在上述两种情况下添加“,”(
<x>
后跟另一个<x>
节点和<x>
后跟文本)。 有没有什么办法来纠正这个xpath?