Extraire des caracteres d'une chaine d'un attribut

Extraire des caracteres d'une chaine d'un attribut - XML/XSL - Programmation

Marsh Posté le 16-12-2003 à 16:36:22    

Bonjour,
Voila j'ai un noeud XML a traiter:

<CC CL="PFAJCDIZOYBKHWTVXLNGU">


Il s'agit de placer une liste (select) les differentes valeurs de la chaines:
Le resultat de vrait etre:
<SELECT>
<OPTION>P
<OPTION>F
<OPTION>A
<OPTION>J
<OPTION>C
<OPTION>D
<OPTION>I
.....
</SELECT>
Le prob c'est que je sais pas boucler sur la longueur de mon attribut CL
Comment faire?

Reply

Marsh Posté le 16-12-2003 à 16:36:22   

Reply

Marsh Posté le 16-12-2003 à 16:55:21    

Etant donné que tu n'indiques pas sous quel environnement de dev tu veux faire ca, comment veux tu qu'on te reponde. On voit pas ca dans une boule de crystal!
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 16-12-2003 à 17:07:29    

Tu as raison c'est du XSL et c'est resolu :)

Reply

Marsh Posté le 17-12-2003 à 09:52:36    

pour ceux que ca interesse voila mon code:
 
<xsl:template name="toto">
  <xsl:param name="CLENGTH" />
  <xsl:param name="CSTRING" />
   <OPTION><xsl:value-of select="substring($CSTRING,$CLENGTH,1)"/></OPTION>
   <xsl:if test="$CLENGTH &gt; 1">
      <xsl:call-template name="toto">
     <xsl:with-param name="CLENGTH" select="$CLENGTH + (-1)" />
     <xsl:with-param name="CSTRING" select="$CSTRING" />
    </xsl:call-template>
   </xsl:if>
</xsl:template>

Reply

Marsh Posté le 17-12-2003 à 18:19:10    

Peut être un poil plus simple :
XML :

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <CC CL="PFAJCDIZOYBKHWTVXLNGU" />


 
XSL :

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsl:stylesheet
  3. version="1.1"
  4. xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  5. <xsl:template match="CC">
  6. <SELECT>
  7.  <xsl:apply-templates select="@CL">
  8.   <xsl:with-param name="POS" select="'1'" />
  9.  </xsl:apply-templates>
  10. </SELECT>
  11. </xsl:template>
  12. <xsl:template match="@CL">
  13. <xsl:param name="POS" />
  14. <OPTION><xsl:value-of select="substring(.,$POS,1)" /></OPTION>
  15. <xsl:if test="substring(., $POS + 1, 1 )">
  16.  <xsl:apply-templates select=".">
  17.   <xsl:with-param name="POS" select="$POS + 1" />
  18.  </xsl:apply-templates>
  19. </xsl:if>
  20. </xsl:template>
  21. </xsl:stylesheet>

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed