我想使用XSLT转换下面的XML:删除连续节点具有相同名称的
<level>
<nextlevel>
<note> text text text </note>
</nextlevel>
<nextlevel>
<abc>
</abc>
<note>bla bla bla </note>
<note>bla bla bla bla bla</note>
<xyz>
</xyz>
</nextlevel>
<nextlevel>
<note> text text text </note>
</nextlevel>
</level>
我想删除重复的节点“注意”只有当它出现连续两次。输出应该是这样的:
<level>
<nextlevel>
<note> text text text </note>
</nextlevel>
<nextlevel>
<abc>
</abc>
<xyz>
</xyz>
</nextlevel>
<nextlevel>
<note> text text text </note>
</nextlevel>
</level>
我使用下面的XSLT:
<xsl:key name="dup" match="note" use="concat(generate-id(..), '|', name())"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="note[not(generate-id() = generate-id(key('dup', concat(generate-id(..), '|', .))[1]))]"/>
然而,所有的名字节点“注”被删除,什么是错我的XSLT?
你甲肝使用名称的关键“DUP” ..但它不是在XSLT – CPR43