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] supprimer noeuds du xml


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [XSLT] supprimer noeuds du xml
    Bonjour,
    Je souhaite remettre a plat un fichier XML hiérarchisé de maniere à avoir qu'un seul noeud
    avant:
    - <Personne>
    - <Identification>
    <QUAL>MR</QUAL>
    <NOM>DUPONT</NOM>
    <SEXE>1</SEXE>
    </Identification>
    - <Nationalite>
    <NATI>F</NATI>
    <DTNATI>1970-08-12</DTNATI>
    </Nationalite>
    - <Prestations>
    <NATPREST>P1</NATPREST>
    <ROLEPERS>STAGE</ROLEPERS>
    </Prestations>

    afin d'avoir ca:
    - <Personne>
    <QUAL>MR</QUAL>
    <NOM>DUPONT</NOM>
    <SEXE>1</SEXE>
    <NATI>F</NATI>
    <DTNATI>1970-08-12</DTNATI>
    <NATPREST>P1</NATPREST>
    <ROLEPERS>STAGE</ROLEPERS>

    je debute ...

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Bonjour,

    Quelque chose comme ça devrait t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     
    	<xsl:output encoding="ISO-8859-1" method="xml"/>
     
    	<xsl:template match="Identification | Nationalite | Prestations">
    		<xsl:apply-templates/>
    	</xsl:template>
     
    	<xsl:template  match="child::node() | attribute::*" priority="-10">
    		<xsl:copy>
    			<xsl:apply-templates select="attribute::*" />
    			<xsl:apply-templates select="child::node()" />
    		</xsl:copy>
    	</xsl:template>
     
    </xsl:stylesheet>

  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
    Bonjour,

    Citation Envoyé par Krantz Voir le message
    Quelque chose comme ça devrait t'aider :
    Il y a moyen de faire plus générique, d'indépendant du nom des balises et de la profondeur de la structure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     
    	<xsl:output encoding="ISO-8859-1" method="xml"/>
     
    	<xsl:template match="/*">
    		<xsl:copy>
    			<xsl:apply-templates/>
    		</xsl:copy>
    	</xsl:template>
     
    	<xsl:template  match="*[not(*)]">
    		<xsl:copy-of select="."/>
    	</xsl:template>
     
    </xsl:stylesheet>

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Février 2009
    Messages : 155
    Points : 231
    Points
    231
    Par défaut
    Citation Envoyé par GrandFather Voir le message
    Il y a moyen de faire plus générique, d'indépendant du nom des balises et de la profondeur de la structure.
    Oui, c'est fort bien vu GrandFather.
    Attention quand même si l'on avait des sous-éléments dans ceux que l'on veut conserver, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <QUAL>M<SUP>R</SUP></QUAL>

Discussions similaires

  1. [XSLT] Supprimer les noeuds vides
    Par knebhi dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 17/02/2009, 16h07
  2. [XSLT] Supprimer les caractères spéciaux HTML d'un noeud texte
    Par Invité dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 25/12/2008, 22h59
  3. [XSLT] supprimer du XML en dehors de la portion matchée
    Par jeanbabi dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 20/05/2008, 13h21
  4. supprimer noeud XML
    Par rainlily dans le forum ASP.NET
    Réponses: 3
    Dernier message: 24/07/2007, 12h21
  5. [XSLT] Filtrer un document XML sur seulement certains noeuds
    Par Tino13 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 28/05/2007, 18h11

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