Transformation XSL (attribut + date)
Bonjour.
1) Je cherche à transformer un xml en un autre pour l'utiliser dans un html. (la page va chercher des données dans le xml).
Je transforme avec xsl 2 parce que j'ai appris cell-ci, mais si la 1 est mieux je peux changer.
Les fichiers xml :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <!-- code de départ -->
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="fichierxml.xsl"?>
<Individuals>
<Individual ID="ind00002">
<Name>prénom nom
<Display>prénom nom</Display>
<First>prénom</First>
<Last>nom</Last>
</Name>
<Pictures Primary="pic00003">pic00003</Pictures>
<Birth>
<Date>16 Apr 1987</Date>
</Birth>
</Individual>
</Individuals>
<!-- code souhaité -->
<data>
<event
start="16 Apr 1987"
isDuration="false"
title="Naissance"
image="images/DSC02912.JPG">
</event>
</data> |
Mais quand je charge la page, j'ai un message d'erreur : D is null (comme quoi il n'y aurait pas de données).
le fichier xsl :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output
encoding="UTF-8"
indent="yes"
method="xml"
omit-xml-declaration="yes"/>
<xsl:template match="Individuals">
<xsl:element name="data">
<xsl:apply-templates select="Individual"/>
</xsl:element>
</xsl:template>
<xsl:attribute-set name="event-details">
<xsl:attribute name="start">
<xsl:value-of select="Birth/Date"/>
</xsl:attribute>
<xsl:attribute name="title">
<xsl:value-of select="Name/Display"/>
</xsl:attribute>
</xsl:attribute-set>
<xsl:template match="Individual">
<xsl:element name="event" xsl:use-attribute-sets="event-details">
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
</xsl:stylesheet> |
2) Je souhaiterai également modifié le format de la date pour avoir :Apr 16 1987 00:00:00 GMT. Je dois donc insérer ces lignes de codes :
Code:
1 2 3 4 5 6
| <xsl:template match="Date">
<xsl:value-of select="substring(., 4, 4)"/>
<xsl:value-of select="substring(., 1, 3)"/>
<xsl:value-of select="substring(., 8, 4)"/>
<xsl:text> 00:00:00 GMT</xsl:text>
</xsl:template > |
mais où ?
merci