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]Sortir les balise d'un namespace d'un XML


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut [XSLT]Sortir les balise d'un namespace d'un XML
    Bonjour,


    Voila j'ai un xml qui contient deux namspace un w: et un ns01: et je voudrais savoir si il y a un moyen simple a l'aide d'un xsl ou quelque chose d'autre de sortir seuleument les balise d'un namespace celles de ns01:


    Merci pour vorte aide

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  2. #2
    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,

    je ne saisis pas très bien ta question... S'agit-il de restituer le flux XML en filtrant certaines balises ?
    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

  3. #3
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Tout à fait !

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <w:toto>
    <ns01:Albert>
    <w:jacque>
    <ns01:Bernard>
    </ns01:...
    </w:...
    </ns01:...
    </w:...
    et je voudrais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <ns01:Albert>
    <ns01:Bernard>
    </ns01:...
    </ns01:...
    si le hiérarchie n'es pas respecté et qui se retrouve mafois tous comme élément "racine" ca ne me dérange pas (je préfére avec si c'est possible)


    Merci

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  4. #4
    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
    Si j'ai bien compris, une feuille de style de ce genre devrait suffire :

    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
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  xmlns:w="AAA" xmlns:ns01="BBB">
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
     
    	<xsl:template match="/">
    		<resultat>
    			<xsl:apply-templates select="*"/>
    		</resultat>
    	</xsl:template>
     
    	<xsl:template match="ns01:*">
    		<xsl:copy>
    			<xsl:apply-templates select="*"/>
    		</xsl:copy>
    	</xsl:template>
     
    	<xsl:template match="w:*">
    		<xsl:apply-templates select="*"/>
    	</xsl:template>
     
    </xsl:stylesheet>
    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

  5. #5
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Merci beaucoup GrandFather pour ta réponse si rapide!

    Je savais pas comment m'y prendre

    La j'ai juste un truc important qui viens de tombé
    alors j'essaye ton idée demain et je te tiens au courant

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  6. #6
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Ouais ca marche excellent! et c'étais pas ns01: mais ns0:

    Mais y a un truc que je cape pas comment je peux faire pour que la balise root ns0:UrkundeAG4 ne copie pas son contenu (inutile pour la suite) pour que seul les balises enfant et "petit-enfant" aie leur contenu qui soit copier?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://schemas.microsoft.com/office/infopath/2003/myXSD/2005-01-05T09:29:52">
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    	<xsl:template match="/">
    		<ns0:UrkundeAG4>
    			<xsl:apply-templates select="*"/>
    		</ns0:UrkundeAG4>
    	</xsl:template>
    	<xsl:template match="ns0:*">
    		<xsl:copy>
    			<xsl:apply-templates select="*"/>
    		</xsl:copy>
    	</xsl:template>
     
    </xsl:stylesheet>
    Ca change pas beaucoup de ce que tu m'as envoyé GrandFather mais j'ai essayé 2 3 idée mais sans succès!!

    Merci pour votre aide

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  7. #7
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    le problème est aussi que je ne sais pas forcément toute les balises w: qu'il y a avant ns0:UrkundeAG4

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  8. #8
    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
    Je ne saisis pas le sens de ta question...

    ns0:UrkundeAG4 est la balise racine de ton document de sortie, je ne vois pas comment tu pourrais recopier son contenu.
    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

  9. #9
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Il y a deux problème:
    1.
    Comme je te l'ai expliqué le doc peut-être et sera surement comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <w:toto> 
    <ns01:Albert> 
    <w:jacque> 
    <ns01:Bernard> 
    </ns01:... 
    </w:... 
    </ns01:... 
    </w:...
    Le prob c'est que je ne sais pas forcément si elle est fils d'Albert ou d'un autre..

    Comment faire pour ne pas être dépendant de ca?

    2.
    Est que je veux le contenu de toute les autre balise mais pas de ns0:UrkundeAG4.

    Je voudrais ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ns0:UrkundeAG4>
    <ns0:Firma>POWERneting SA</ns0:Firma>
    <ns0:Sitz>Neuchâtel</ns0:Sitz>
    </ns0:UrkundeAG4>
    et pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ns0:UrkundeAG4>blablablabla
    <ns0:Firma>POWERneting SA</ns0:Firma>
    blablabla
    <ns0:Sitz>Neuchâtel</ns0:Sitz>blablabla
    </ns0:UrkundeAG4>
    car la balise UrkundeAG4 est en mixcontent pour des raisons de validation.


    Voila j'espère que tu comprendras sinon n'hésite pas a poser des question

    Merci encore

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  10. #10
    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
    Avec le code que je t'ai donné, il n'est pas possible que les noeuds texte soient recopiés. Je ne vois donc pas où est le problème...

    Citation Envoyé par virgul
    Le prob c'est que je ne sais pas forcément si elle est fils d'Albert ou d'un autre..
    Qui, "elle" ?

    Avec le code que j'ai donné, la hiérarchie des éléments est respectée : "Bernard" apparaîtra comme fils de "Albert". Par contre, avec le tien, les élément w:* ne sont pas parcourus et les éventuels ns0:* qu'ils contenaient ne seront pas recopiés.
    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

  11. #11
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Qui, "elle" ?
    je voulais marqué ns0:UrkundeAG4

    Excuse je suis des fois pas très explicite et je m'exprime un peu bizzarement même pour moi des fois

    Je me suis planté enfaite le problème 1 avec ta solution a été résolu mais pas le point 2 et je te l'ai remis pour que tu ne le perdes pas de vu (car je ne l'avais pas bien expliqué avant)! désolé

    en faite tout le prob maintenant c'est de pouvoir avoir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ns0:UrkundeAG4> 
    <ns0:Firma>POWERneting SA</ns0:Firma> 
    <ns0:Sitz>Neuchâtel</ns0:Sitz> 
    </ns0:UrkundeAG4>
    et pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <ns0:UrkundeAG4>blablablabla 
    <ns0:Firma>POWERneting SA</ns0:Firma> 
    blablabla 
    <ns0:Sitz>Neuchâtel</ns0:Sitz>blablabla 
    </ns0:UrkundeAG4>

    a cause du mixcontent de ns0:UrkundeAg1


    Merci beaucoup

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  12. #12
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Excellent j'ai trouvé une solution pour faire mon truc!

    Comme il s'agit d'un fichier WordML tu peux lui dire que quand il sauve il ignore le contenu mix alors plus de prob si ca intéresse quelqu'un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <w:ignoreMixedContent w:val="on"/>
    Merci encore pour ton aide GrandFather qui m'a été encore une fois d'un grand secours!!!

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/12/2006, 16h37
  2. [XSLT] ne ferme pas les balises vides
    Par nickola dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 17/11/2006, 11h44
  3. [XSLT] Changer les noms de balise lors de la fusion
    Par toxine dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 25/01/2006, 09h47
  4. [XSLT]petit(s) pb(s) avec les xmlns et <xsl:namespace-ali
    Par Swoög dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/01/2005, 17h04
  5. [Documentation][XSLT][XSLFO]Les balises xslfo
    Par Lydiane dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 14/08/2002, 11h31

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