2016-04-12 39 views
0

1/Bir tarihin xml cinsinden bir olay listesi var. Her olayı bir CSV biçimindeki tarihi ile yazdırmak istiyorum.Son önceki kardeşi bir şeye eşit ve ilk kardeşi bir şeye eşit nasıl bulunur?

17/01/2012;Event 1 
17/01/2012;Event 2 
17/01/2012;Event 3 
20/02/2012;Event 4 
20/02/2012;Event 5 
20/02/2012;Event 6 

2/I: Giriş

<Events> 
<Event> 
    <Date>17/01/2012</Date> 
    <Description>Event 1</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 2</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 3</Description> 
</Event> 
<Event> 
    <Date>20/02/2012</Date> 
    <Description>Event 4</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 5</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 6</Description> 
</Event> 
</Events> 

sonuç: tarih 1900/01/01 ise, Örneğin 01/01/1900

farklı son önceki eş arama xml'de bir tarihe sahip olayların bir listesini bulundurun. Her olayı bir CSV biçimindeki tarihi ile yazdırmak istiyorum.

17/01/2012;Event 1 
20/02/2012;Event 2 
20/02/2012;Event 3 
20/02/2012;Event 4 
30/03/2012;Event 5 
30/03/2012;Event 6 
30/03/2012;Event 7 

bende yok': in

<Events> 
<Event> 
    <Date>17/01/2012</Date> 
    <Description>Event 1</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 2</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 3</Description> 
</Event> 
<Event> 
    <Date>20/02/2012</Date> 
    <Description>Event 4</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 5</Description> 
</Event> 
<Event> 
    <Date>01/01/1900</Date> 
    <Description>Event 6</Description> 
</Event> 
<Event> 
    <Date>30/03/2012</Date> 
    <Description>Event 7</Description> 
</Event> 
</Events> 

sonuç: tarih 1900/01/01 ise, Örneğin 01/01/1900

farklı ilk sonraki kardeş arama Bir sonraki veya bir önceki öğeye bir değere eşit bir şekilde bakma yolunu bulmak. Yardımlarınız için teşekkürler.

+0

Sorunuz cevaplanmadı mı? –

cevap

0

İlk durumda, deneyin:

<xsl:template match="/Events"> 
    <xsl:for-each select="Event"> 
     <xsl:choose> 
      <xsl:when test="Date='01/01/1900'"> 
       <xsl:value-of select="preceding-sibling::Event[Date!='01/01/1900'][1]/Date" /> 
      </xsl:when> 
      <xsl:otherwise> 
       <xsl:value-of select="Date" /> 
      </xsl:otherwise> 
     </xsl:choose> 
     <xsl:text>;</xsl:text> 
     <xsl:value-of select="Description" /> 
     <xsl:text>&#10;</xsl:text> 
    </xsl:for-each> 
</xsl:template> 

Not preceding-sibling bir reverse axis geçerli: En yakın önceki-kardeş ilki değil sonuncusu.

İlgili konular