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 : ELEMENT] déclaration automatique de namespace


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 11
    Points : 12
    Points
    12
    Par défaut [XSLT : ELEMENT] déclaration automatique de namespace
    bonjour,

    j'ai un problème lors de la création d'élement avec xslt et, malgré de nombreux tests, aucun ne fonctionne.

    extrait du xml source
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <field id="nom">rabbit</field>
    <field id="prenom">roger</field>
    extrait du xslt version 1.0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <xsl:for-each select="*">
    	<xsl:element name="{@id}">
    		<xsl:value-of select="." />
    	</xsl:element>
    </xsl:for-each>
    résultat sous windows en local :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <nom>rabbit</nom>
    <prenom>roger</prenom>
    résultat sur AS400 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <ns5269:nom xmlns:ns5269="http://toto.com/titi">rabbit</ns5269:nom>
    <ns5270:prenom xmlns:ns5270="http://toto.com/titi">roger</ns5270:prenom>
    Les éléments ainisi créés sur AS400 ont un namespace généré aléatoirement et égal au namespace par défaut du source xsl, alors que sous windows tout fonctionne bien. Ceci fonctionne sur la même version du serveur web, tous 2 avec xalan.

    parmi les tests :
    perdu : name="{@id}"
    gagné : name="roger"
    perdu : name="{$maVariable}"
    dès qu'il y a des accolades, ça me génère des namespace.

    si vous avez une idée...

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Peut être que tu pourrais définir un namespace par défaut pour tous tes éléments. Apparemment le processeur xslt de l'AS400 en définit un nouveau lorsqu'aucun n'est spécifié.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 11
    Points : 12
    Points
    12
    Par défaut
    il y a bien un espace de nom par défaut de définit.

    avec ceci en entrée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <xsl:variable name="toto">test</xsl:variable>
    <xsl:element name="ac:{$toto}">valeur1</xsl:element>
    <xsl:element name="{$toto}">valeur2</xsl:element>
    <xsl:element name="nom">valeur3</xsl:element>
    j'obtiens cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <abc:MyResponse xmlns="http://ici.com/def" xmlns:ac="http://la.com/ghi">
      <DATA>
        <ac:test>valeur1</ac:test>
        <ns14:test xmlns:ns14="http://ici.com/def">valeur2</ns14:test> 
        <nom>valeur3</nom>
      </DATA>
    </abc:MyResponse>
    bien évidemment, <xsl:element name="#default:{$toto}"> fait tout planter :-(

  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
    pour les namespace avec la balise element cela fonctionne comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                   <xsl:element name = "qqq:AAA" namespace = "http://zvon.org/xslt" >
                        <qqq:BBB qqq:bbb = "2" />
                   </xsl:element>

Discussions similaires

  1. [XSLT] modification d'un préfixe namespace XML
    Par abertaud dans le forum XSL/XSLT/XPATH
    Réponses: 9
    Dernier message: 07/05/2007, 16h32
  2. [XSLT] Element parent dans un For-each
    Par Katachana dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 20/04/2007, 09h39
  3. [XSLT] Element parent
    Par ploxien dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 30/05/2006, 14h50
  4. [XSLT] Exclure un préfixe de namespace d'une transformation
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/07/2005, 09h00
  5. [XSLT] Probleme de selection avec namespaces
    Par Ludo_xml dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 01/06/2005, 14h32

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