如何快速缩小 xml 文件中重复的 id 条目数,例如:
<entry id="A">...
<entry id="B">...
<entry id="A">...
并输出它们
id="A" dup 2 times
只是想让你知道我是一个完全的菜鸟,这意味着我甚至不知道如何运行任何代码,所以如果你有这个问题的代码,你至少可以告诉我运行它所需的软件名称,我会从那里查找它。
答案1
下面是一个可以实现该功能的 XSLT 2.0 样式表:
<xsl:transform version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<out>
<xsl:for-each-group select="//entry" group-by="@id">
<xsl:if test="count(current-group()) > 1">
<duplicate id="{current-grouping-key()}" count="{count(current-group())"/>
</xsl:if>
</xsl:for-each-group>
</out>
</xsl:template>
</xsl:transform>
您可以通过(例如)从 SourceForge 下载 Saxon-HE,然后运行(从命令行)来运行它
java -jar saxon9he.jar -s:input.xml -xsl:count-dupes.xsl
其中 input.xml 是您的 XML 输入,count-dupes.xsl 是样式表。
我已将输出格式化为 XML,但当然您可以根据需要更改输出格式。