Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1331 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  Traitement sous conditions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Traitement sous conditions

n°1585135
JBMAN
Posté le 11-07-2007 à 12:52:07  profilanswer
 

Bonjour,
 
je cherche à traiter certaines données en fonction d'un attribut.
 
j'ai mon fichier xml :
<MESSAGE>
<CHAMP10 NOM="Dupont" PRENOM="toto"/>
  <CHAMP20 AGE="33"/>
</MESSAGE>
<MESSAGE>
<CHAMP10 NOM="Durand" PRENOM="tata"/>
  <CHAMP20 AGE="35"/>
</MESSAGE>
 
Je veux selectionner l'age uniquement de ceux dont le nom est Dupont.
J'ai essayé des tas de choses diffentes dont ca entres autres, je comprends que ca ne marche pas mais je bloque, je débute avec xsl.
 
<xsl:variable name="cond"/>
<xsl:template match="/">
 
<xsl:for-each select="MESSAGE">
 
<xsl:for-each select="CHAMP10">
<xsl:if test="@NOM= 'Dupont'">
<xsl:variable name="cond" select="@NOM"/>
</xsl:if>
 
</xsl:for-each>  
<xsl:for-each select="CHAMP20">
<xsl:if test="cond = 'Dupont'">
<xsl:value-of select="@AGE"/>&space;
</xsl:if>
</xsl:for-each>  
</xsl:for-each>  
 
 </xsl:template>
 
Merci.

mood
Publicité
Posté le 11-07-2007 à 12:52:07  profilanswer
 

n°1586279
avander
Posté le 13-07-2007 à 16:09:46  profilanswer
 

JBMAN a écrit :

Bonjour,
 
je cherche à traiter certaines données en fonction d'un attribut.
 
j'ai mon fichier xml :
<MESSAGE>
<CHAMP10 NOM="Dupont" PRENOM="toto"/>
  <CHAMP20 AGE="33"/>
</MESSAGE>
<MESSAGE>
<CHAMP10 NOM="Durand" PRENOM="tata"/>
  <CHAMP20 AGE="35"/>
</MESSAGE>
 
Je veux selectionner l'age uniquement de ceux dont le nom est Dupont.
J'ai essayé des tas de choses diffentes dont ca entres autres, je comprends que ca ne marche pas mais je bloque, je débute avec xsl.
 
<xsl:variable name="cond"/>
<xsl:template match="/">
 
<xsl:for-each select="MESSAGE">
 
<xsl:for-each select="CHAMP10">
<xsl:if test="@NOM= 'Dupont'">
<xsl:variable name="cond" select="@NOM"/>
</xsl:if>
 
</xsl:for-each>  
<xsl:for-each select="CHAMP20">
<xsl:if test="cond = 'Dupont'">
<xsl:value-of select="@AGE"/>&space;
</xsl:if>
</xsl:for-each>  
</xsl:for-each>  
 
 </xsl:template>
 
Merci.


 
Pourquoi tant de haine? Ton example démontre que tu n'a RIEN compris au méchanisme de transformation...


Message édité par avander le 13-07-2007 à 16:13:06
n°1586287
Mara's dad
Yes I can !
Posté le 13-07-2007 à 16:23:39  profilanswer
 

+1
<xsl:template match="/CHAMP10[@NOM='Dupont']">

n°1586289
avander
Posté le 13-07-2007 à 16:28:38  profilanswer
 

Il manque un élément racine à ton xml...  :whistle:  
 

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<ROOT>
<MESSAGE>
  <CHAMP10 NOM="Dupont" PRENOM="toto"/>
  <CHAMP20 AGE="33"/>
</MESSAGE>
<MESSAGE>
  <CHAMP10 NOM="Durand" PRENOM="tata"/>
  <CHAMP20 AGE="35"/>
</MESSAGE>
</ROOT>
<!-- eof -->


 
Ma transformation...

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 
<!-- general settings -->
  <xsl:output method="text" omit-xml-declaration="no" encoding="ISO-8859-1"/>
 
<!-- transformations -->
  <xsl:template match="/">
    <xsl:text>Start XSLT
    </xsl:text>
    <xsl:apply-templates/>
  </xsl:template>
 
 
  <xsl:template match="MESSAGE">
    <xsl:text>Start MESSAGE</xsl:text>
    <xsl:apply-templates/>
  </xsl:template>
 
 
  <xsl:template match="CHAMP10">
    <xsl:text>Start CHAMP10
    </xsl:text>
    <xsl:text>Nom:</xsl:text><xsl:value-of select="@NOM" />
    <xsl:if test="@NOM='Dupont'">
      <xsl:text> Age:</xsl:text><xsl:value-of select="../CHAMP20/@AGE" />
    </xsl:if>
 
  </xsl:template>
</xsl:stylesheet>
<!-- eof -->


 
et le résultat:

Start XSLT
     
Start MESSAGE
  Start CHAMP10
    Nom:DupontAge:33
   
 
Start MESSAGE
  Start CHAMP10
    Nom:Durand


 
Les Start MACHIN c'est pour te donner une idée du processus...  

n°1607613
JBMAN
Posté le 03-09-2007 à 14:37:01  profilanswer
 

Merci, très tardif, vacances obligent, pour cette réponse.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  Traitement sous conditions

 

Sujets relatifs
[Ajax] Traitement de l'ajax dans une page fille[Javascript - URGENT] traitement de chaine de caractère - Résolu
[résolu]XSL conditions[Résolu] Afficher le temps qui s'écoule pendant un traitement
Macro excel pour traitement fichier word[DIVERS] Excel et somme de cellule sous conditions
Conditions avec couleursTraitement par lot, convertir les fichiers avec la mêm extention
[asp.net]"Impossible d'afficher la page" sur un traitement long[resolu] [VBA] Cacher check box sous conditions
Plus de sujets relatifs à : Traitement sous conditions


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR