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

C# Discussion :

Xpath et namespace


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Xpath et namespace
    Bonjour,

    avant toutes choses j'ai déjà regardé d'autres posts traitent ce sujet sans toutefois répondre totalement à mon souci.

    Je reçois d'un tiers un document xhtml suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html xmlns='http://www.w3.org/1999/xhtml'><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /><title>title</title></head><body>Content.</body></html>
    Quand je tente de le parser, pour récupérer le body par exemple je ne reçois rien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    using(MemoryStream v_stream = new MemoryStream(v_sogecResponse.Body))
                    {
                        v_xmlReader = new XmlTextReader(v_stream);
                        v_doc = new XmlDocument();
                        v_doc.Load(v_xmlReader);
                        v_xmlReader.Close();
                        v_doc.DocumentElement.Attributes.RemoveAll();
     
     
                    }                
                    XmlNode v_nodeBody = v_doc.SelectSingleNode("//body");
    J'ai aussi tenté l'utilisation d'un NamespaceManager, mais sans succès...
    En regardant les éléments je vois bien qu'ils ont un namespaceUri="http://www.w3.org/1999/xhtml", je suis perdu.
    J'ai tenté de remplacer (sachant que je ne souhaite pas modifier ce flux xml) xmlns par xmlns:html mais sans succès...

    Heeeeelp

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Je ne sais pas si c’est LA solution, mais c’est la moins sale que j’ai trouvé :

    En C#

    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
               using(MemoryStream v_stream = new MemoryStream(v_sogecResponse.Body))
     
                    {
     
                        v_xmlReader = new XmlTextReader(v_stream);
     
                        v_doc = new XmlDocument();
     
                        v_doc.Load(v_xmlReader);
     
                        v_xmlReader.Close();
     
                        v_doc.DocumentElement.Prefix = "xhtml";
     
     
     
     
     
                    }                
     
                    XmlNamespaceManager v_nsManager = new XmlNamespaceManager(v_doc.NameTable);
     
                    v_nsManager.AddNamespace("xhtml", "http://www.w3.org/1999/xhtml");
     
                    XmlNode v_nodeBody = v_doc.SelectSingleNode("//xhtml:body", v_nsManager);

    Ce qui donne un flux :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xhtml:html xmlns="http://www.w3.org/1999/xhtml" xmlns:xhtml="http://www.w3.org/1999/xhtml"><head><meta content="text/html; charset=UTF-8" http-equiv="Content-Type" /><title>ECoupon - error</title></head><body>ECECF00009-The request for operation code 0000000001 is missing barcode value.</body></xhtml:html>

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Cette discussion évoque exactement le même problème. Et propose d'ailleurs à peu près la même solution

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 namespaces
    Par GriffinK dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 09/09/2009, 12h40
  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