Bonjour à tous
Pour ceux qui me connaisse déjà, mon projet avance mais suite a (enfin) une réunion pour établir (enfin) un cahier des charges. J'ai quelques modification a apporter a mon programme, surtout en ce qui concerne les fichiers XML. Ce que j'avais modifié avec une grand aide de"
Mayzz", qui m'avais crée un morceau de code. Malheureusement ne conviens plus.
Voici le code XML sur lequel je doit travailler(ce sera de ce format la):
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<?xml version='1.0' encoding="utf-8" ?>
<config>
<type version="ACM1000">
<mesures>
<item>
<nom>U Batterie</nom>
<Obj>RDAT/5_1/</Obj>
<Ind>2</Ind>
<Format>100</Format>
<Unit>V</Unit>
<Selection>false</Selection>
<SelectInter>false</SelectInter>
<SeuilInter>0</SeuilInter>
</item>
<item>
<nom>I Batterie</nom>
<Obj>RDAT/6_1/</Obj>
<Ind>3</Ind>
<Format>100</Format>
<Unit>A</Unit>
<Selection>false</Selection>
<SelectInter>false</SelectInter>
<SeuilInter>0</SeuilInter>
</item>
<item>
<nom>U Util</nom>
<Obj>RDAT/5_1/</Obj>
<Ind>4</Ind>
<Format>100</Format>
<Unit>V</Unit>
<Selection>false</Selection>
<SelectInter>false</SelectInter>
<SeuilInter>0</SeuilInter>
</item>
</mesures>
<entrees>
<item>
<nom>CFD</nom>
<Obj>RDAT/9_1/</Obj>
<Ind>9</Ind>
<Format>100</Format>
<Selection>false</Selection>
<SelectInter>false</SelectInter>
</item>
<item>
<nom>Alarm</nom>
<Obj>RDAT/8_1/</Obj>
<Ind>8</Ind>
<Format>100</Format>
<Selection>false</Selection>
<SelectInter>false</SelectInter>
</item>
</entrees>
</type>
<type version="ACMi1000">
<mesures>
<item>
<nom>U Batterie</nom>
<Obj>RDAT/5_1/</Obj>
<Ind>2</Ind>
<Format>100</Format>
<Unit>V</Unit>
<Selection>false</Selection>
<SelectInter>false</SelectInter>
<SeuilInter>0</SeuilInter>
</item>
<item>
<nom>I Batterie</nom>
<Obj>RDAT/6_1/</Obj>
<Ind>3</Ind>
<Format>100</Format>
<Unit>A</Unit>
<Selection>false</Selection>
<SelectInter>false</SelectInter>
<SeuilInter>0</SeuilInter>
</item>
<item>
<nom>U Util</nom>
<Obj>RDAT/5_1/</Obj>
<Ind>4</Ind>
<Format>100</Format>
<Unit>V</Unit>
<Selection>false</Selection>
<SelectInter>false</SelectInter>
<SeuilInter>0</SeuilInter>
</item>
</mesures>
<entrees>
<item>
<nom>CFD</nom>
<Obj>RDAT/9_1/</Obj>
<Ind>9</Ind>
<Format>100</Format>
<Selection>false</Selection>
<SelectInter>false</SelectInter>
</item>
<item>
<nom>Alarm</nom>
<Obj>RDAT/8_1/</Obj>
<Ind>8</Ind>
<Format>100</Format>
<Selection>false</Selection>
<SelectInter>false</SelectInter>
</item>
</entrees>
</type>
</config>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Et voici le bout de code que j'ai commencé:
Function Load(ByVal filename As String) As Collection
'
Try
Dim i As Integer = 0
'Dim resul As Integer
Dim Coll As XmlDocument = New XmlDocument
Coll.Load(filename)
Dim navigateur As XPathNavigator = Coll.CreateNavigator()
'La je veux récupérer tout les information qui concerne l'ACM1000 / mesures /item
Dim noeuds As XPathNodeIterator = navigateur.Select("/config/type[@version='ACM1000']/mesures/item")
While noeuds.MoveNext()
Dim Nom, Type, Obj, Ind, Format, Unit, Selection, SelectInter, SeuilInter As String
'Voila ce que je veux obtenir a savoir remplir mes variables correspondante puis remplir ma collection.
Nom =
Type =
Obj =
Ind =
Format =
Unit =
Selection =
SelectInter =
SeuilInter =
'Ma collection
'Ici remplissage de ma collection avec toute les variables
End While
Catch e As Exception
MsgBox("erreur")
Return Nothing
End Try
End Function
Voila, j'ai comme vous prouver voir tester avec les XPath
Et la j'essaie avec DOM
Mais a chaque fois j'ai du mal. Avec Xpath j'arrive pas à parcourir tout les données enfant de "item"
On pensais a définir le select directement dans item/nom puis item/Obj etc... sa marche mais c'est lourd.
Et pour le moment en utilisation de DOM j'arrive a parcourir les noeud mais pas a recuperer les données
Merci de votre aide
Technicien en électricité industriel. En cours de reconversion par un BTS IRIS 1er année.
Actuellement en stage dans mon entreprise en R&D.