首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XSLT对具有不同日期的重复元素更具体地使用序列选择

XSLT对具有不同日期的重复元素更具体地使用序列选择
EN

Stack Overflow用户
提问于 2016-12-19 01:56:51
回答 1查看 130关注 0票数 0

我有一个XSL2.0版本,可以使用<xsl:sequence>删除重复项。我只是根据ID从下面的xml中删除重复的条目元素,另外,我需要考虑日期字段并删除旧的。或者,我可以删除一个不是当前日期的,因为新条目总是在当前日期盖章。在这种情况下,删除日期为2016-09-01 (粗体)的ID aces条目。请记住,无论日期如何,我都不想删除一个不是dup的条目。

代码语言:javascript
复制
<?xml version='1.0' encoding='utf-8'?>
<Data>
    <Entry>
        <ID>aces</ID>
        <Info>
            <Code2>0006</Code2>
            <AMOUNT>7.52<AMOUNT>            
        <Info>
        <Date>2016-12-18-05:00</Date>
    </Entry>
    <Entry>
        <ID>chawk</ID>
        <Info>
            <Code2>0007</Code2>
            <AMOUNT>7.53<AMOUNT>            
        <Info>
        <Date>2016-11-01-05:00</Date>
    </Entry>
     **<Entry>
        <ID>aces</ID>
        <Info>
            <Code2>0006</Code2>
            <AMOUNT>7.53<AMOUNT>            
        <Info>
        <Date>2016-09-01-05:00</Date>
    </Entry>**
</Data>

以下是我当前的XSL:

代码语言:javascript
复制
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-declaration="yes" indent="yes"/>

    <xsl:template match="/*">
        <Data xmlns:xs="http://www.w3.org/2001/XMLSchema">
            <xsl:for-each-group select="Entry" group-by="ID">
                <xsl:sequence select="."/>
            </xsl:for-each-group>
       </Data>
    </xsl:template>
</xsl:stylesheet>

提前谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-19 08:05:08

按日期对组中的项进行排序,并仅输出最新的项(最后按升序排序或按降序排序排序):

代码语言:javascript
复制
<xsl:template match="/*">
    <Data xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xsl:for-each-group select="Entry" group-by="ID">
            <xsl:for-each select="current-group()">
                <xsl:sort select="Date" order="descending"/>
                <xsl:if test="position() eq 1">
                    <xsl:copy-of select="."/>
                </xsl:if>
            </xsl:for-each>
        </xsl:for-each-group>
   </Data>
</xsl:template>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41214839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档