IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] Transformer les noeuds enfants en attribut du premier noeud


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut [XSLT] Transformer les noeuds enfants en attribut du premier noeud
    Salut à tous j'ai un petit souçis je dois manipuler un fichier xml ( qui arrive d'un dataset en csharp , jusque la pas trop de problème ( déjà réglés en amont ) mais je dois transformer les balises de ce fichier en attribut :

    une partie du xml d'entrée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <Customers>
          <Id>e0a097a8-f3b2-456e-9fb8-f0a0691b9c95</Id>
          <Description>Capuchon</Description>
          <CompositionParentId>d5949b80-9d32-43f8-9e62-4deadd3ece28</CompositionParentId>
          <Level>1</Level>
          <Customers>
            <Id>6077771f-0aa7-49a9-b5b8-bb0629872c83</Id>
            <CompositionParentId>e0a097a8-f3b2-456e-9fb8-f0a0691b9c95</CompositionParentId>
            <Level>2</Level>
          </Customers>
        </Customers>
    et je souhaiterais récupéré en sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <Customers Id='e0a097a8-f3b2-456e-9fb8-f0a0691b9c95'
          Description='Capuchon'
          CompositionParentId='d5949b80-9d32-43f8-9e62-4deadd3ece28'
          Level='1'>
          <Customers Id='6077771f-0aa7-49a9-b5b8-bb0629872c83'
      CompositionParentId='e0a097a8-f3b2-456e-9fb8-f0a0691b9c95'
            Level='2'>
          </Customers>
        </Customers>
    voila , avec X sous niveau de customer ...
    Si quelqu'un pouvait m'agyuer je n'ai pas trouver de solution dans la faq , ni dans celle sur xslt
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 20
    Points : 24
    Points
    24
    Par défaut
    ce srait quelque chose du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <xsl:template match="Customers">
      <xsl:copy>
        	<xsl:for-each select="*">
    		<xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute>
    	</xsl:for-each>
      </xsl:copy>
    </xsl:template>

  3. #3
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Plus exactement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:template match="Customers">
      <xsl:copy>
        <xsl:for-each select="*[not(Customers)]">
          <xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute>
        </xsl:for-each>
        <xsl:apply-templates select="Customers" />
      </xsl:copy>
    </xsl:template>
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/04/2013, 11h29
  2. [XSLT] Regrouper les noeuds en fonction d'un attribut
    Par Creuvard dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 11/12/2008, 11h31
  3. Réponses: 2
    Dernier message: 01/12/2008, 15h32
  4. [XSLT] Transformer le nom d'un attribut
    Par titchagui dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 01/12/2008, 10h53
  5. [XSLT] Transformation d'un noeud en attribut
    Par EboXml dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 02/01/2007, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo