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 :

Xpath et namespaces


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 123
    Points : 58
    Points
    58
    Par défaut Xpath et namespaces
    Bonjour,

    Mon fichier xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLTest:test xmlns:nsp1="..." xmlns:nsp2="..." >
        <Entête>
            <nsp1:noeud1>maValeurTxt</noeud1:MessageID>
        </Entête>
        <Corps>
    		<Entête>
    			<nsp2:noeud2>maValeurTxtBIS</nsp2:MessageID>
    		</Entête>
        </Corps>
    </XMLTest>
    Pour l'instant, lorsque je veux récupérer le noeud 2, je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    nsMgr = new XmlNamespaceManager(feedXml.NameTable);
     
    nsMgr.AddNamespace("nsp1", "blabla");
    nsMgr.AddNamespace("nsp2", "balbla");
    nsMgr.AddNamespace("rss", "http://purl.org/rss/1.0/");
     
    XmlNode dateNode = rdfXml.SelectSingleNode("/XMLTest:test/rss:Corps/rss:Entête/nsp2:noeud2", nsMgr);
    Le problème est que lorsque le xml se complique, je me retrouve avec une requête xpath trop longue.

    Savez vous s'il existe un moyen de faire une requête directement sur le noeud noeud2, sans avoir à passer par toute l'arborescence du xml ?

  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,

    Citation Envoyé par GriffinK Voir le message
    Le problème est que lorsque le xml se complique, je me retrouve avec une requête xpath trop longue.
    Comment cela, trop longue ? Il faut savoir qu'en XPath la longueur d'une expression n'est pas toujours en rapport avec sa vitesse d'exécution. Dans ce cas précis, tu peux utiliser // qui est le raccourci de /descendant-or-self::node()/, mais ce sera moins performant que le chemin complet.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XmlNode dateNode = rdfXml.SelectSingleNode("//nsp2:noeud2", nsMgr);

  3. #3
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 123
    Points : 58
    Points
    58
    Par défaut
    Coucou GrandFather,

    Merci de ta réponse

    Longue dans le sens à rallonge, pas en temps d'exécution.

    Merci pour l'info

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

Discussions similaires

  1. [Débutant] Parsing avec Xpath/Linq NameSpace
    Par patrickvier dans le forum VB.NET
    Réponses: 1
    Dernier message: 31/07/2013, 10h53
  2. Xpath et namespace
    Par Snekemoa dans le forum C#
    Réponses: 2
    Dernier message: 24/03/2009, 09h53
  3. xpath query pb avec namespace prefix [vb6-msxml]
    Par dodiable le dodieu dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/08/2005, 12h52
  4. XMLCursor, XPath et Namespaces
    Par Sylvain James dans le forum XMLRAD
    Réponses: 7
    Dernier message: 13/04/2005, 14h06
  5. expression XPath et namespace
    Par gendalf37 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/10/2004, 13h26

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