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] Changement de namespace


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2004
    Messages : 103
    Points : 79
    Points
    79
    Par défaut [XSLT] Changement de namespace
    Dans un fichier XML, je doit changer la valeur de namespace "urn:titi:toto:v1" par "urn:titi:toto:v2". Je ne sais pas comment le namespace est définie(définie par un préfixe ou définie dans chaque noeud). C'est juste un rechercher/remplacer standard.

    J'ai pensé faire cela par un programme java car je n'arrive pas à trouver de solution en xslt.

    Sachant que je doit ensuite faire des transformations, j'aurais aimé faire cela en une seul étape sans passer par le java.

    Est ce quelqu'un a une idée? Est ce possible de faire cela en xslt?

  2. #2
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    as tu un exemple très simple d'xml de départ et d'xml final
    ce bout de code permet de faire une copie basique donc à mon avis on peux faire ce que tu souhaites
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output 
      		encoding="ISO-8859-15"
      		method="xml"
      		indent="yes" />
     
    	<xsl:template match="node() | @*">
    		<xsl:copy>
    			<xsl:apply-templates select="@* | node()"/>
    		</xsl:copy>
    	</xsl:template>
    </xsl:stylesheet>

  3. #3
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2004
    Messages : 103
    Points : 79
    Points
    79
    Par défaut
    merci de ta réponse et j'ai trouvé une solution

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
     
        <xsl:output method="xml"/>
     
        <xsl:template match="@*|*">
                    <xsl:copy>
                        <xsl:apply-templates select="@*|node()"/>
                    </xsl:copy>
        </xsl:template>
     
        <xsl:template match="v1ns:*" xmlns:v1ns="urn:titi:toto:v1">
            <xsl:element name="{name()}" namespace="urn:urn:titi:toto:v2">
                <xsl:copy-of select="@*"/>
                <xsl:apply-templates/>
            </xsl:element>
        </xsl:template>
     
        <xsl:template match="v1ns:D6_Miscellaneous"  xmlns:v1ns="urn:titi:toto:v1">
            <xsl:element name="D6_MiscellaneousRequest" namespace="urn:titi:toto:v2">
                <xsl:element name="D6_Miscellaneous" namespace="urn:titi:toto:v2">
                    <xsl:attribute name="order">1</xsl:attribute>
                    <xsl:copy-of select="@*"/>
                    <xsl:apply-templates/>
                </xsl:element>
            </xsl:element>
        </xsl:template>
     
    </xsl:stylesheet>

  4. #4
    Membre éprouvé
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Points : 1 063
    Points
    1 063
    Par défaut
    ta réponse apporte une solution précise à ton problème
    as tu trouvé une solution plus globale?

  5. #5
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mai 2004
    Messages : 103
    Points : 79
    Points
    79
    Par défaut
    plus globale non

    J'ai juste la solution pour switcher entre deux namspace.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSLT]Problème de namespace sur un export XMi (UML 2.1/XMi 2.1)
    Par CocoRambo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 25/06/2007, 09h50
  2. [XSLT]Transformation et namespace
    Par Koyote dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 02/02/2007, 11h39
  3. [XSLT] Syntaxe des namespaces (ns:tag) non comprise
    Par LoK dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 31/12/2006, 10h39
  4. [XSLT] Déclaration de namespace dans un doc xml
    Par Vanille dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 06/12/2006, 15h26
  5. [xslt] Changement de tables, colonnes
    Par moutse dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 24/09/2005, 07h16

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