我想使用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