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] Récupérer un attribut contenant un espace de noms


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Points : 66
    Points
    66
    Par défaut [XSLT] Récupérer un attribut contenant un espace de noms
    Salut ,
    Voilà mon prb :
    dans mon fichier xml g un attribut (en rouge ) à vérifié

    XML:

    <rty893:active host="www.google.fr" protocol="http" xmlns:ns273= "http://mondomaine1.com/applications/"/>

    ....

    <rty8983:active host="www.google.fr" protocol="http" xmlns:ns783= "http://mondomaine2.com/applications/"/>

    Je cherche donc à récupérer la valeur de l'attribut xmlns:ns???.

    J'ai fais le parcours suivant:
    XSL:

    <xsl:for-each select="attribute::*">
    ...
    </xsl:for-each>

    Mais je n'arrive pas à trouvé de syntaxe/moyen d'obtenir le nom de l'attribut parcouru ....
    merci pour vos réponses

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:for-each select="@*">
    <xsl:value-of select="name()"/>
    </xsl:for-each>

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Points : 66
    Points
    66
    Par défaut
    Je n'ai pas précisé que j'avais déjà fais le parcours des balises, je cherche donc uniquement à identifier un attribut xmlns:ns??? (???? -> valeurs variables) et à récupérer sa valeur.
    Je v essayer la réponse ci dessus

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

    ce n'est pas un attribut "standard", c'est une déclaration d'espace de noms destinée au parseur XML, et qu'il ne remonte telle quelle à l'application cliente. Avec XSLT, tu peux connaître les espaces de noms actifs pour le noeud courant en utilisant l'axe namespace (avec une expression XPath du style namespace::*), mais je ne vois pas trop l'intérêt que peut représenter pour toi cette information...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par GrandFather
    Bonjour,

    ce n'est pas un attribut "standard", c'est une déclaration d'espace de noms destinée au parseur XML, et qu'il ne remonte telle quelle à l'application cliente. Avec XSLT, tu peux connaître les espaces de noms actifs pour le noeud courant en utilisant l'axe namespace (avec une expression XPath du style namespace::*), mais je ne vois pas trop l'intérêt que peut représenter pour toi cette information...
    Merci pour cette précision
    Pour moi cette information est essentiel puisque qu'elle fait partie d'un ensemble de règles de gestion que je dois vérifier (c le travaille qu'on me demande de faire en ce moment). Je dois juste vérifier les informations contenues dans un fichier xml grace à un fichier xsl (et tout cela m'est imposé : je ne peux donc modifier le fichier xml).
    Je continue à me demander pourquoi utiliser une base xml de + de 20 000 lignes (g l'impression qu'une base sql serais plus simple et plus efficace).
    Comment deverais-je utiliser namespace::* dans mon cas?

  6. #6
    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
    tu dois vérifier qu'un fichier xml comporte certaine balise , certain namespace avec certaine valeur? Pourquoi ne pas utiliser un xsd?

  7. #7
    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
    Citation Envoyé par fraoustin
    tu dois vérifier qu'un fichier xml comporte certaine balise , certain namespace avec certaine valeur? Pourquoi ne pas utiliser un xsd?
    Tout à fait d'accord, vérifier notamment les espaces de noms va être galère avec XSLT, tandis que c'est assez trivial avec une validation par un W3C XML Schema... Quitte éventuellement à passer ensuite par une série de tests écrits en XSLT qui vérifieront ce qui ne peut pas l'être avec un XSD, comme certaines contraintes d'intégrité.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 147
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par GrandFather
    Tout à fait d'accord, vérifier notamment les espaces de noms va être galère avec XSLT, tandis que c'est assez trivial avec une validation par un W3C XML Schema... Quitte éventuellement à passer ensuite par une série de tests écrits en XSLT qui vérifieront ce qui ne peut pas l'être avec un XSD, comme certaines contraintes d'intégrité.
    Sûrement mais on m' impose le traitement de gestion d'erreurs par le biais d'un fichier XSLT.
    C'est d'ailleur pour cela que je me prend la tête sur des régles extrêmement simple ...

  9. #9
    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
    A mon avis il va plutot falloir convaincre qu'il faut utiliser un schema, sinon ce que tu vas faire va plutot être difficile à maintenir

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/08/2012, 16h20
  2. Réponses: 2
    Dernier message: 06/12/2010, 09h47
  3. [XSLT] Récupérer un attribut sur un élément pointé par un IDREF
    Par Folken Laëneck dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/05/2007, 07h31
  4. Récupérer l'attribut action d'un formulaire
    Par boubouh dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 04/02/2006, 15h19
  5. [XSLT] Dédoublonner des attributs
    Par 242 dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 10/11/2005, 15h44

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