ugrás a tartalomhoz

XML szűrés

shark300 · 2008. Jan. 1. (K), 12.50
Helló mindenkinek, és BUÉK!

Szóval a józan webfejlesztőket kérném egy amatőr kérdés megválaszolására:

Van egy XML-em, és formáznám XSL-el.
XML:
<SOURCE>
<DAY>
...
<PROGRAM start="06:25" end="08:35">
...
</PROGRAM>
<PROGRAM start="08:35" end="10:20">
...
</PROGRAM>
<PROGRAM start="10:20" end="12:20">
...
</PROGRAM>
<PROGRAM start="12:20" end="14:30">
...
</PROGRAM>
<PROGRAM start="14:30" end="16:15">
...
</PROGRAM>
<PROGRAM start="16:15" end="18:25">
...
</PROGRAM>
<PROGRAM start="18:25" end="20:25">
...
</PROGRAM>
<PROGRAM start="20:25" end="22:55">
...
</PROGRAM>
...
</DAY>
</SOURCE>


Szóval ki szeretném szűrni a példában a start="10:20"-tól kezdődően 5 elemet. Gondolom for-each-csel végig kéne léptetni, majd az első if megfeleltetés pozícióját kellene megjegyeztetni...
Válaszotokat köszönöm!
 
1

XSL-lel

Fraki · 2008. Jan. 1. (K), 23.57
XSL-lel
3

XSL

shark300 · 2008. Jan. 2. (Sze), 02.50
Erre magamtól is rájöttem ;-)
2

Szelektor

vbence · 2008. Jan. 2. (Sze), 01.17
A következő XPath kifejezés visszaadja egy tetszőleges időpont (a példában 10:20) utáni programok listáját. A három darabot, már neked kell leprogramoznod...
SOURCE/DAY/PROGRAM[number(translate(@start,':','.'))>=10.20]
4

Kód

shark300 · 2008. Jan. 2. (Sze), 02.53
Időközben volt egy kis segítségem:
<xsl:template match="SOURCE/DAY">
  <xsl:for-each select="PROGRAM[translate(@end,':','0') &gt;= translate(@actime,':','0')]">
    <xsl:if test="position() &lt;= 5">
      <xsl:value-of select="@start"/>
    </xsl:if>
  </xsl:for-each>
</xsl:template>
Köszi a segítséget!