Bonjour à tous,
j'aurais besoin de votre aide.
voila, en fait j'ai un fichier XMl avec une feuille XSL
J'ai un exemple qui marche bien :
Fichier XML en Input
<?xml version="1.0" encoding="UTF-8"?>
<META xmlns:xs="http://www.w3.org/2001/XMLSchema">
<MOTS_CLES>Mot clé,tt,yy,yyt</MOTS_CLES>
</META>
XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:lom="http://ltsc.ieee.org/xsd/LOM" xmlns:lomfr="http://www.lom-fr.fr/xsd/LOMFR"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ltsc.ieee.org/xsd/LOM http://ltsc.ieee.org/xsd/lomv1.0/lom.xsd">
<xsl:template match = "/">
<lom:lom>
<lom:general>
<lom:keyword>
<lom:string language="fre">
<xsl:value-of select="META/MOTS_CLES"/>
</lom:string>
</lom:keyword>
</lom:general>
</lom:lom>
</xsl:template>
<xsl:template match ="/">
<xsl:element name="lom:lom">
<xsl:call-template name="tmpSplitString">
<xsl:with-param name="stringtosplit" select ="META/MOTS_CLES" />
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="tmpSplitString">
<xsl:param name="stringtosplit" />
<xsl:variable name="first" select="substring-before($stringtosplit, ',')" />
<xsl:variable name="remaining" select="substring-after($stringtosplit, ',')" />
<xsl:element name ="lom:keyword">
<xsl:value-of select="$first" />
</xsl:element>
<xsl:if test="$remaining">
<xsl:call-template name="tmpSplitString">
<xsl:with-param name="stringtosplit" select="$remaining" />
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Et en fichier de sortie, voila ce que je désire pour MOTS_CLES
<?xml version="1.0"?>
<lom:lom xmlns:lom="http://ltsc.ieee.org/xsd/LOM"><lom:keyword>Mot clé</lom:keyword><lom:keyword>tt</lom:keyword><lom:keyword>yy</lom:keyword><lom:keyword/></lom:lom>
j'aurais besoin de votre aide.
voila, en fait j'ai un fichier XMl avec une feuille XSL
J'ai un exemple qui marche bien :
Fichier XML en Input
<?xml version="1.0" encoding="UTF-8"?>
<META xmlns:xs="http://www.w3.org/2001/XMLSchema">
<MOTS_CLES>Mot clé,tt,yy,yyt</MOTS_CLES>
</META>
XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:lom="http://ltsc.ieee.org/xsd/LOM" xmlns:lomfr="http://www.lom-fr.fr/xsd/LOMFR"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ltsc.ieee.org/xsd/LOM http://ltsc.ieee.org/xsd/lomv1.0/lom.xsd">
<xsl:template match = "/">
<lom:lom>
<lom:general>
<lom:keyword>
<lom:string language="fre">
<xsl:value-of select="META/MOTS_CLES"/>
</lom:string>
</lom:keyword>
</lom:general>
</lom:lom>
</xsl:template>
<xsl:template match ="/">
<xsl:element name="lom:lom">
<xsl:call-template name="tmpSplitString">
<xsl:with-param name="stringtosplit" select ="META/MOTS_CLES" />
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="tmpSplitString">
<xsl:param name="stringtosplit" />
<xsl:variable name="first" select="substring-before($stringtosplit, ',')" />
<xsl:variable name="remaining" select="substring-after($stringtosplit, ',')" />
<xsl:element name ="lom:keyword">
<xsl:value-of select="$first" />
</xsl:element>
<xsl:if test="$remaining">
<xsl:call-template name="tmpSplitString">
<xsl:with-param name="stringtosplit" select="$remaining" />
</xsl:call-template>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
Et en fichier de sortie, voila ce que je désire pour MOTS_CLES
<?xml version="1.0"?>
<lom:lom xmlns:lom="http://ltsc.ieee.org/xsd/LOM"><lom:keyword>Mot clé</lom:keyword><lom:keyword>tt</lom:keyword><lom:keyword>yy</lom:keyword><lom:keyword/></lom:lom>