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] Chemin absolu dans le nom d'une balise XML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 18
    Points : 19
    Points
    19
    Par défaut [XSLT] Chemin absolu dans le nom d'une balise XML
    Bonjour,

    j'aimerais remplacer dans un fichier xml le nom des balises par le chemin absolue c'est à dire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Commande>
      <date> ...</date>
      <Personne>
          <Nom> </Nom>
          <Prenom> </Prenom>
       </Personne>
    </Commande>
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Commande>
      <Commande_date> ...</Commande_date>
      <Commande_Personne>
          <Commande_Personne_Nom> </Commande_Personne_Nom>
          <Commande_Personne_Prenom> </Commande_Personne_Prenom>
       </Commande_Personne>
    </Commande>
    Ceci afin de m'assurer d'avoir des noms unique afin de pouvoir l'exporter dans une base Sql (car l'outil d'exportation que j'utilise ne fonctionne pas s'il y a des doublons dans les noms des balises)

    Merci

  2. #2
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Le plus simple est de partir de la transformation identité et de faire suivre un paramètre à chaque template. Ce paramètre prendra pour valeur la concaténation de sa valeur précédente et du nom de l'élément courant (il faut utilisez xsl:element ...).

  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
    « Simple » est le terme adéquat, ce genre de traitement récursif est la spécialité de XSLT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <xsl:template match="*">
      <xsl:param name="prefix"/>
      <xsl:element name="{concat($prefix, name())}">
        <xsl:apply-templates select="*|text()">
          <xsl:with-param name="prefix" select="concat($prefix, name(), '_')"/>
        </xsl:apply-templates>
      </xsl:element>
    </xsl:template>

Discussions similaires

  1. [JDOM] Récupérer le nom d'une balise XML avec JDOM
    Par cendrine15 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 10/04/2012, 15h18
  2. chemin absolu dans une directive "import"
    Par zebulong dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 02/08/2010, 12h24
  3. Comment récupérer le nom d'une balise XML avec DOM ?
    Par Predatorus26 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 28/05/2010, 15h54
  4. Problème de chemin absolu dans une tâche
    Par ToniConti dans le forum Pentaho
    Réponses: 4
    Dernier message: 13/04/2010, 17h07
  5. Afficher chemin absolu dans une application
    Par azila dans le forum C++
    Réponses: 2
    Dernier message: 21/11/2006, 12h20

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