我想要XML文档中唯一的元素列表。如果元素的出现次数大于1,我想在输出中出现最后一次:
请参阅以下XML获取唯一列表:
<Organization>
<Fund id="F01" name="HighVista I Ltd Partnership"/>
<Fund id="F01" name="HighVista II Limited Partnership"/>
<Fund id="F02" name="HighVistaLand I, Ltd."/>
<Fund id="F02" name="HighVistaLand II, Ltd."/>
<Fund id="F03" name="HighVista III Limited Partnership"/>
</Organization>
转换应输出以下结果:
<Organization>
<Fund id="F01" name="HighVista II Limited Partnership"/>
<Fund id="F02" name="HighVistaLand II, Ltd."/>
<Fund id="F03" name="HighVista III Limited Partnership"/>
</Organization>
*请注意基金名称属性的更改,ID为F01和F02。
需要XSLT1.0中的示例代码 - 提前致谢。
答案 0 :(得分:0)
您之前的帖子和How to get value of unique XML element by using XSLT中的答案适用,只需根据属性<xsl:key name="by-id" match="Fund" use="@id"/>
定义密钥,然后使用<xsl:copy-of select="Fund[generate-id() = generate-id(key('by-id', @id)[last()])]"/>
。您应该能够从之前的完整解决方案中推断出其他内容。