Avatar billede rasmuslh Nybegynder
28. september 2006 - 09:59 Der er 5 kommentarer og
1 løsning

Redigere datofelt med regex

Hejsa

Jeg sidder med en Blog funktion der udskriver noget xml som jeg modellerer med xslt. XSD har et felt der hedder Created hvor dato står i af typen year-mm-ddThh-mm-ss

Altså uden nogle attributter så man har mulighed for at style det som man ønsker. Jeg overvejer derfor at lave en transformation vha. regex så jeg kan bytte indholdet rundt så det passer til mit formål.

Jeg vil gerne have min dato ud som fx. 28-09-2006 08:48:20

Er der en venlig sjæl der kan hjælpe mig med det?

Jeg har lavet flg. template:

    <xsl:template match="Created">

        <xsl:variable name="created" select="." />
        <xsl:variable name="year" />
        <xsl:variable name="month" />
        <xsl:variable name="day" />
        <xsl:variable name="hour" />
        <xsl:variable name="minute" />
        <xsl:variable name="second" />
       
                *Her skal være noget fancy XSLT *

    </xsl:template>

Nu mangler så alt det "svære" :-(
Avatar billede Slettet bruger
28. september 2006 - 10:47 #1
Hvis du selv splitter ud til variablerne er det et spørgsmål om at samle dem på din egen måde igen:

<xsl:value-of select="concat($day, '-', $month, '-', $year, ' ', $hour, ':', $minute, ':', $second)" />

/CS
Avatar billede rasmuslh Nybegynder
28. september 2006 - 11:02 #2
Jeg skal først splitte datoen op. Det har jeg ikke gjort endnu. Variablerne der findes er nogle jeg selv forestiller mig at delresultaterne skal gemmes i
pt. har Created elementet bare noget tekst indhold. fx: <Created>2006-09-27T14:38:25</Created>

Det er det jeg gerne vil have hjælp med at splitte op og gemme i nogle variabler.
Avatar billede Slettet bruger
28. september 2006 - 11:59 #3
OK - så kør frem efter flg. princip:

<xsl:variable name="year" select="substring-before($created, '-')" />
<xsl:variable name="month" select="substring-before(substring-after($created, $year), '-')" />
...

/CS
Avatar billede rasmuslh Nybegynder
28. september 2006 - 14:09 #4
Jeg kan sagtens se princippet i det. Year fungerer også, men month er tom på den måde.
Avatar billede rasmuslh Nybegynder
28. september 2006 - 14:20 #5
Ahhh - jeg løste det selv. Der skulle abre konkateneres lidt. Så det så ud som følger:

<xsl:template match="Created">
<xsl:variable name="created" select="." />
<xsl:variable name="year" select="substring-before($created, '-')" />
<xsl:variable name="month" select="substring-before(substring-after($created, concat($year, '-')), '-')" />
<xsl:variable name="day" select="substring-before(substring-after($created,  concat($month, '-')), 'T')" />
<xsl:variable name="hour" select="substring-before(substring-after($created, 'T'), ':')" />
<xsl:variable name="minute" select="substring-before(substring-after($created, concat($hour,':')), ':')" />
<xsl:variable name="second" select="substring-after($created, concat($minute,':'))" />
<xsl:value-of select="concat($day, '-', $month, '-', $year, ' ', $hour, ':', $minute, ':', $second)" />
</xsl:template>
Avatar billede rasmuslh Nybegynder
28. september 2006 - 14:21 #6
tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I går 23:37 Poe strøm Af lurup i LAN/WAN
I går 14:46 GIF-EDITOR Af snestrup2000 i Billedbehandling
I går 14:03 Logge ind Af Bob i PC
I går 12:12 2 skærme - 1 virker - den anden siger No signal Af eksmojo i Skærme
I går 10:33 openvpn projekt Af dcedata1977 i Windows