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

 .NET Discussion :

XmlDocument et Namespace [VB.NET]


Sujet :

.NET

  1. #1
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Points : 227
    Points
    227
    Par défaut XmlDocument et Namespace
    Bonjour,

    je reçoit un xml en réponse à un web service. De cette réponse, j’extraie les informations dont j'ai besoin. Seulement arrivé à une certaine balises,
    il y a un namespace de défini sans aucun préfixe. J'essaye donc de définir un namespace pour ensuite récupérer mon information avec xPath mais rien n'y fait, mon information n'est pas extraite.

    Voici la manière dont je m'y prend :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
            Dim xmlDoc As XmlDocument = New XmlDocument
            xmlDoc.LoadXml("<?xml version=""1.0"" encoding=""utf-8""?><addresses>" & _
                               "<address>" & _
                                   "<communeRef Type=""001"" Status=""Status1"" Structure=""Structure1"">" & _
                                       "<Date xmlns=""http://www.ibz.rrn.fgov.be/XSD/xm25/rn25Schema"">" & _
                                           "<Century>18</Century>" & _
                                           "<Year>1780</Year>" & _
                                           "<Month>10</Month>" & _
                                           "<Day>2</Day>" & _
                                       "</Date>" & _
                                       "<DelDate xmlns=""http://www.ibz.rrn.fgov.be/XSD/xm25/rn25Schema"">" & _
                                           "<Century>19</Century>" & _
                                           "<Year>1880</Year>" & _
                                           "<Month>10</Month>" & _
                                           "<Day>2</Day>" & _
                                       "</DelDate>" & _
                                       "<Residence xmlns=""http://www.ibz.rrn.fgov.be/XSD/xm25/rn25Schema"">" & _
                                           "<Code>5</Code>" & _
                                           "<Label>Label1</Label>" & _
                                       "</Residence>" & _
                                       "<Fusion xmlns=""http://www.ibz.rrn.fgov.be/XSD/xm25/rn25Schema"">0</Fusion>" & _
                                       "<Language xmlns=""http://www.ibz.rrn.fgov.be/XSD/xm25/rn25Schema"">1</Language>" & _
                                   "</communeRef>" & _
                                   "<address class=""belgianAddress"">" & _
                                       "<countryCode>55</countryCode>" & _
                                       "<countryName language=""NL"">countryName1</countryName>" & _
                                       "<countryName language=""FR"">countryName2</countryName>" & _
                                       "<countryName language=""DE"">countryName3</countryName>" & _
                                       "<cityCode>5555</cityCode>" & _
                                       "<cityName language=""NL"">cityName1</cityName>" & _
                                       "<cityName language=""FR"">cityName2</cityName>" & _
                                       "<cityName language=""DE"">cityName3</cityName>" & _
                                       "<postalCode>5785</postalCode>" & _
                                       "<streetCode>75757</streetCode>" & _
                                       "<streetName language=""NL"">streetName1</streetName>" & _
                                       "<streetName language=""FR"">streetName2</streetName>" & _
                                       "<streetName language=""DE"">streetName3</streetName>" & _
                                       "<houseNumber>78</houseNumber>" & _
                                       "<boxNumber>4</boxNumber>" & _
                                       "<date>1900-01-01</date>" & _
                                   "</address>" & _
                               "</address>" & _
                               "<addressRefs>" & _
                                   "<addressRef Type=""024"" Status=""Status1"" Structure=""Structure1"">" & _
                                       "<Date xmlns=""http://www.ibz.rrn.fgov.be/XSD/xm25/rn25Schema"">" & _
                                           "<Century>18</Century>" & _
                                           "<Year>1700</Year>" & _
                                           "<Month>10</Month>" & _
                                           "<Day>01</Day>" & _
                                       "</Date>" & _
                                       "<DelDate xmlns=""http://www.ibz.rrn.fgov.be/XSD/xm25/rn25Schema"">" & _
                                           "<Century>18</Century>" & _
                                           "<Year>1750</Year>" & _
                                           "<Month>12</Month>" & _
                                           "<Day>1</Day>" & _
                                       "</DelDate>" & _
                                   "</addressRef>" & _
                               "</addressRefs>" & _
                           "</addresses>")
     
            Dim nodes As XmlNode = xmlDoc.SelectSingleNode("addresses")
            Dim ns As XmlNamespaceManager = New XmlNamespaceManager(xmlDoc.NameTable)
            ns.AddNamespace("", "http://www.ibz.rrn.fgov.be/XSD/xm25/rn25Schema")
     
            For Each node As XmlNode In nodes.ChildNodes
     
                If node.SelectSingleNode("communeRef") IsNot Nothing Then
     
                    Dim nodeCommuneRef As XmlNode = node.SelectSingleNode("communeRef")
                    Dim comRef As CommuneRef = New CommuneRef()
     
                    If nodeCommuneRef.SelectSingleNode("Date/Century", ns) IsNot Nothing Then
                        comRef.Date.Century = CInt(node.SelectSingleNode("Date/Century", ns).InnerText)
                    End If
     
                    If node.SelectSingleNode("Date/Year") IsNot Nothing Then
                        comRef.Date.Year = CInt(node.SelectSingleNode("Date/Year").InnerText)
                    End If
     
                    If node.SelectSingleNode("Date/Month") IsNot Nothing Then
                        comRef.Date.Month = CInt(node.SelectSingleNode("Date/Month").InnerText)
                    End If
     
                    If node.SelectSingleNode("Date/Day") IsNot Nothing Then
                        comRef.Date.Day = CInt(node.SelectSingleNode("Date/Day").InnerText)
                    End If
                End If
                Console.WriteLine(node.InnerXml & "\n\n")
                Console.ReadKey()
            Next
    D'avance je vous remercie pour l'aide.

  2. #2
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Points : 227
    Points
    227
    Par défaut
    Problème résolu. Visual studio ne me génère pas les tags des namespace quand je lui demande de généré un exemple de réponse sur base du xsd du wsdl.

    J'ai ajouté les tags à la main et modifié de cette manière :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    ns.AddNamespace("r", "http://www.ibz.rrn.fgov.be/XSD/xm25/rn25Schema")
    ....
    If nodeCommuneRef.SelectSingleNode("r:Date/r:Century", ns) IsNot Nothing Then
                        comRef.Date.Century = CInt(node.SelectSingleNode("r:Date/r:Century", ns).InnerText)
                    End If
    Un grand merci à VisualStudio pour m'avoir induit en erreur.
    D'ailleurs si vous savez me conseillez un soft, meilleur que VS, qui génère l'exemple sur base du xsd cela serait génial.

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

Discussions similaires

  1. Namespace et XmlDocument
    Par bob633 dans le forum C#
    Réponses: 2
    Dernier message: 05/05/2015, 14h09
  2. XMLDocument et namespace
    Par FlyByck dans le forum Langage
    Réponses: 2
    Dernier message: 17/06/2009, 05h48
  3. [XML] xmlreader namespace XMLDocument
    Par Oxy42 dans le forum Framework .NET
    Réponses: 1
    Dernier message: 07/12/2006, 17h45
  4. [Debutant][Divers] - namespace et attributs
    Par sebbb dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 10/06/2003, 14h40
  5. Erreur récurrente (namespace)
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 3
    Dernier message: 25/02/2003, 10h27

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