Accueil > Forum > > > > recherche dans un fichier xml en vb.net
recherche dans un fichier xml en vb.net
mardi 11 juillet 2006 à 08:15:21 |
recherche dans un fichier xml en vb.net

diego29
|
je souhaite faire une fonction qui fait une recherche dans un fichier xml d'un ou deux objets suivant un critère. le problème est le suivant : la fonction trouve un certain nombre de noeuds dans le fichier xml (ceux du début en fait) mais pas tous.
voici mon code:
Sub Rechercher_Composants()
Dim DocXml As New XmlDocument() Dim Noeud1, Noeud2 As XmlNode Dim Noeuds1, Noeuds2 As XmlNodeList Dim sCritere1, sCritere2 As String Dim s1, s2 As String Dim v2 As Char() = {"+"}
DocXml.Load("composants.xml") s1 = CBO_1_3.Text s2 = CBO_2_3.Text sCritere1 = "//objet[caract='" & CBO_1_2.SelectedItem & " " & s1.TrimStart(v2) & " euros" & "']" sCritere2 = "//objet[caract='" & CBO_2_2.SelectedItem & " " & s2.TrimStart(v2) & " euros" & "']" Noeud1 = DocXml.SelectSingleNode(sCritere1) Noeuds1 = Noeud1.ChildNodes
For Each Noeud1 In Noeuds1 Select Case Noeud1.Name Case "nom" TXT_RES_1.Text = Noeud1.InnerText & " :" & vbCrLf Case "necessaire" TXT_RES_1.Text = TXT_RES_1.Text & Noeud1.InnerText End Select Next
If CBO_2_3.SelectedItem <> String.Empty Then
Noeud2 = DocXml.SelectSingleNode(sCritere2) Noeuds2 = Noeud2.ChildNodes
For Each Noeud2 In Noeuds2 Select Case Noeud2.Name Case "nom" TXT_RES_2.Text = Noeud2.InnerText & " :" & vbCrLf Case "necessaire" TXT_RES_2.Text = TXT_RES_2.Text & Noeud2.InnerText End Select Next End If
End Sub
peut être y a t il des fonctions XML en .NET qui permettent de résoudre le problème autrement je manque de doc sur le sujet. merci si vous avez une idée.
|
|
mercredi 23 août 2006 à 11:01:02 |
Re : recherche dans un fichier xml en vb.net

saizonou
|
Salut,
Sans voir ton fichier xml c'est un peu difficile mais ta recherche Xpath se fait avec un SelectSingleNode "SelectSingleNode(sCritere1) " donc tu ne récupères que le premier noeud trouvé correspondant à ce critère. Pour avoir une liste de tous les noeuds correspondants (nodelist) tu dois utiliser un SelectNode
SAIZONOU Landry
|
|
jeudi 24 août 2006 à 10:56:26 |
Re : recherche dans un fichier xml en vb.net

diego29
|
mon fichier xml a la sctructure suivante :
<liste> <objet> <nom></nom> <prix></prix> <caract></caract> <necessaire> <compo0></comp0> <compo1></comp1> <compo2></comp2> </necessaire> </objet> <objet> --------- </objet> </liste>
La recherche fonctionne en fait sur les 100 premiers objets à partir du 101 ème j'ai une erreur de type "System.NullReferenceException"
|
|
jeudi 24 août 2006 à 17:10:42 |
Re : recherche dans un fichier xml en vb.net

diego29
|
c'est bien <compo0></compo0> <compo1></compo1> <compo2></compo2> petite erreur de frappe dans le msg au dessus 
|
|
vendredi 25 août 2006 à 10:56:44 |
Re : recherche dans un fichier xml en vb.net

saizonou
|
Salut Ton erreur "System.NullReferenceException" vient du fait qu'une de tes recherches ( Noeud1 = DocXml.SelectSingleNode(sCritere1))ne trouve aucun node correspondant, tu te retrouves avec un Noeud1 nul. Comme tu veux utiliser ce node après il te renvoi une erreur. Pour éviter cette erreur tu dois effectuer le traitement sur ce node que s'il n'est pas nul : Noeud1 = DocXml.SelectSingleNode(sCritere1) IfNot Noeud1 IsNothingThen Noeuds1 = Noeud1.ChildNodes ForEach Noeud1 In Noeuds1 SelectCase Noeud1.Name Case"nom" TXT_RES_1.Text = Noeud1.InnerText & " :" & vbCrLf Case"necessaire" TXT_RES_1.Text = TXT_RES_1.Text & Noeud1.InnerText EndSelect Next EndIfJe te rappel aussi que l'utilisation de SelectSingleNode ne retourne que le premier node correspondant à ta recherche, s'il y en a d'autres tu ne les auras pas dans ta réponse. SAIZONOU Landry [ Lien ]
|
|
lundi 28 août 2006 à 12:27:27 |
Re : recherche dans un fichier xml en vb.net

diego29
|
merci pour ces explications, en effet SelectSingleNode ne retourne qu'un seul noeud mais comme il ne peut y avoir qu'un seul objet correspondant au critère dans ma liste je n'en aurai donc qu'un mais effectivement pour etre plus rigoureux je devrai remplacer le // par / dans ma requete Xpath.
quant au test "ifnot" le compilateur me répond que le test n'est pas possible sur un objet de type XmlNodelist.
j'ai vérifié ma requete Xpath avec un outil Xpathvisualizer et tous les objets que j'ai pu rechercher ont été trouvés. dont pas de soucis du coté de la structure de mon fichier Xml.
j'ai essayé également avec un fichier XML avec une liste plus courte là bizarrement plus d'erreur !!
étant donné que je travaille avec une version Express de VB j'ai lu qu'il y avait une limitation quant au fonctionnalités Xml par rapport aux versions standard et pro le problème pourrait-il venir de là ?
|
|
lundi 28 août 2006 à 13:48:05 |
Re : recherche dans un fichier xml en vb.net

saizonou
|
Houps ! Petite erreur de frappe, c'est Is not et pas ifnot qui n'existe pas. Quant à une limitation des fonctionnalités XML je ne sais pas ce qu'il en est, par contre l'erreur que tu annonces est bien une référence à un objet null.
SAIZONOU Landry
|
|
Cette discussion est classée dans : text, case, xml, noeud1, noeud2
Répondre à ce message
Sujets en rapport avec ce message
Winsock qui reçoit seulement 1 octet ??? [ par doggy ]
Salut !Bon ben voilà, je sais pas trop ce qu'il se passe, mais mon contrôle winsock ne veut pas recevoir plus d'1 octet ...Apres quelques tests, j'ai
comment reconnaitre une variable avec un bloc if [ par p33M ]
Salut je suis un debutant et jai créé un programme de chat avec winsock et voici le sub pour reconnaitre les donnés ki arrive de lautre utilisateurPri
lire du xml [ par snarkpit29 ]
Bonjours je n'arrive plus a lire un fichier xml auparavant j'utilisé ce code la la version du xml était mais maintenant la version a changé vb m
Pb de test [ par DragonBurn ]
Je n'arrive pas à déterminer pourquoi mon test ne se réalise pasj'ai conçu un prog qui utilise des fonctions d'excel pour déterminer des résultats de
Help pour trouver un bug [ par CeNedra83 ]
je dispose d'une ihm avec beaucoup de text box, et je dois empecher dans certaines que des lettres y soient rentrées. je ne evux autoriser que des nom
[vb.net] Traducteur [ par Nexto ]
Bonsoir,Je voudrais modifier la source deWhiteDwarf (traducteur qui prend les infos di translate de Google) qui est en vb6 et je voudrais le migrer ve
réception sur port com + buffer [ par comablack ]
Bonjours,j'ai un petit boitier, qui, lorsque j'ouvre la porte du lab envoye un signal a 1 sur le port com. J'ai développer un petit soft qui coupe aut
Toujour un truc qui gene !! [ par aposfa ]
bonsoir en fait je réalise un sudoku tout fonctionne tres bien sauf deux trucs bien génant !! 1er probleme : j'ai créer une fonction pour enregistre
XML et caract spéciaux (saut de ligne, < ou >, accents ) [ par globule ]
Bonjour, J'écris des données XML dans une variable comme ceci ChaineXML = "" ChaineXML = ChaineXML + "" ChaineXML = ChaineXML + "<V
probleme de défnition [ par sechanbask ]
Bonjour, Je cherche à faire un convertisseur de valeur, suivant une fonction non connue, en bref, je rentre la valeur d'un débit et ça me donne le
Livres en rapport
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|