xslt - 消除 XSLT 中的重复文件名

标签 xslt xpath

我陷入了 XSLT 程序,该程序消除了输出中的重复项。感谢帮助

XML 输入:

<changelog> 
<entry>     
    <file>
        <name>web/JavaSource/oig/asoig/web/resource/AsoigResources.properties</name>
        <revision>1.7.2.6</revision>
        <prevrevision>1.7.2.5</prevrevision>
    </file>     
</entry>
<entry>     
    <file>
        <name>AdminEJB/ejbModule/oig/admin/dao/schema/TableCode.java</name>
        <revision>1.1.4.2</revision>
        <prevrevision>1.1.4.1</prevrevision>
    </file>
    <file>
        <name>web/JavaSource/oig/asoig/web/resource/AsoigResources.properties</name>
        <revision>1.7.2.6</revision>
        <prevrevision>1.7.2.5</prevrevision>
    </file>     
</entry>    
</changelog>

期望的输出:

web/JavaSource/oig/asoig/web/resource/AsoigResources.properties
AdminEJB/ejbModule/oig/admin/dao/schema/TableCode.java

注意:AsoigResources.properties 在输入 XML 中重复。

使用的 XSLT 代码:

<xsl:for-each select="entry/file">
    <tr>
        <td><xsl:value-of select="name"/></td>        
    </tr>
</xsl:for-each>

我需要 XSLT 来删除重复项。我尝试使用“以下 sibling ”,但没有帮助。

最佳答案

您可以对 xsl:for-each 使用以下 XPath 表达式:

entry/file[not(name = preceding::name)]

选择名称与任何前面的名称都不匹配的文件。

关于xslt - 消除 XSLT 中的重复文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666404/

相关文章:

xml - 如何使用命名空间对 XML 进行 XSL 转换?

xml - 用于确定 XSLT 和 XML 数据源之间未使用的元素的脚本

python - 在 scrapy 中匹配多个 <p> 标签

xml - XSLT 日期格式

xml - 使用 xsl 模板参数作为选择中的节点(即元素的值)

xslt - 复制 XML,同时排除父节点,删除特定子节点,并覆盖部分子节点

xml - 如果存在 XSD,XSLT 处理器是否验证输入和输出 XML 文件?

ruby - Capybara::歧义匹配,找到 2 个匹配 xpath 的元素 - 找到第一个链接

xml - 比较整个节点集的属性值

html - 使用 Nokogiri::HTML 抓取 - 无法从 XPATH 获取文本