从xml中删除重复项(两个条件)

时间:2015-08-11 11:18:23

标签: xml xslt xslt-1.0

我正在搜索xslt解决方案,以消除xml文件中的重复项。 使用名为epgrab的软件创建文件。它从dvb-s发送应答器中获取epg数据并将其保存到* .xml文件中。 这里的问题是我们每天多次阅读epg,因为一些数据在一小时左右就会发生变化,我们需要及时获得实际的epg数据。有时它会发生条目重复。 这些都需要消除,因为每当有人打开我们的iptv前端时,网络服务器都不应该读取10兆字节的文件。

xml文件如下所示:

    <programme channel="28007.dvb.guide" start="20150811143300 +0200" stop="20150811151800 +0200">
    <title lang="de">Traumstädte: Stockholm - Die Entspannte</title>
    <sub-title lang="de">Film von Ines Trams</sub-title>
    <desc lang="de">Stockholm ist eine schwimmende Metropole mit einzigartiger Stadtgeografie: Jeweils ein Drittel der Stadtfläche b$
    <language>de</language>
    <!--language>mul</language-->
        <!--language>mis</language-->
        <!--language>de</language-->
    <video>
      <aspect>16:9</aspect>
    </video>
    <audio>
      <stereo>stereo</stereo>
    </audio>
    <subtitles type="teletext">
      <language>de</language>
    </subtitles>
  </programme>

这里的问题是我们需要检查通道PID和启动/停止时间 - 不仅仅是一个条件。 这对xslt-1.0有什么用?

感谢您的帮助!

编辑:感谢Martin Honnen格式化我的代码:&gt;

1 个答案:

答案 0 :(得分:0)

使用XSLT 1.0对项目进行分组时,称为Muenchian分组的方法基于密钥,因此您可以定义密钥<xsl:key name="group" match="programme" use="concat(@channel, '|', @start, '|', @stop)"/>,有关详细信息,请参阅http://www.jenitennison.com/xslt/grouping/muenchian.xml