[VB.net]Lecture xml vers dataset : prob avec sous noeuds
Bonjour,
Après une recherche dans le forum et chez Microsoft(http://samples.gotdotnet.com/quickst...Document.aspx), je n'arrive toujours pas à trouver une solution à mon problème.
Avant de l'exposer et de montrer mon code de test, voici la base de données:
Bonjour,
Avant de vous exposer le problème et mon code, voici la base de données:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
<?xml version="1.0" encoding="ISO-8859-1" ?>
- <job>
<ident>mubea</ident>
- <bar>
<ident>12345</ident>
<count>1</count>
- <cut>
<ident>0031</ident> =>noeuds
<count>12</count>
<length>2025.8</length>
<v ident="Benennung" nr="1">01</v> =>sous noeuds
<v ident="Ausführung" nr="2">002</v>
<v ident="" nr="3">709</v>
<v ident="" nr="4">0</v>
<v ident="" nr="5">427883 002 070 FSS Flügel SS</v>
</cut>
</bar>
</job> |
Code:
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
|
Public BaseDonnees As DataSet
Public VueDonnees As DataView
Public VueLigneDonnees As DataRowView
Public FichXML As String
Private MaTableDeDonnees As DataTable
Private MaVueDeDonnees As DataView
________________________________________
Public Sub ChargerGrille()
'traitement
Try
'on renseigne le chemin du fichier XML
FichXML = Application.StartupPath & "\options.xml"
'on renseigne un dataset avec ce fichier XML sans shéma car inutile ici
BaseDonnees = New DataSet
BaseDonnees.ReadXml(FichXML)
'on trie
VueDonnees = Trier(BaseDonnees, "cut", "ident", True)
'on renseigne le datagrid
With DataGrid
.DataSource = VueDonnees.Table
End With
Catch exc As Exception
MessageBox.Show("XML file not found.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
________________________________________
Public Function Trier(ByVal DataSet As DataSet, ByVal Table As String, ByVal Propriete As String, ByVal TriAscendant As Boolean) As DataView
Dim Tri As String
' Génère une vue triée d'un dataset sur une propriété d'une de ses tables
MaTableDeDonnees = DataSet.Tables(Table) 'Mettre dans un Objet DataTable une table du DataSet
MaVueDeDonnees = MaTableDeDonnees.DefaultView 'Créer la vue
If TriAscendant = True Then
Tri = Propriete & " ASC"
Else
Tri = Propriete & " DESC"
End If
MaVueDeDonnees.Sort = Tri
Return MaVueDeDonnees
End Function
________________________________________ |
Ma base de données est composée de lignes "cut" avec un id "ident".
Quand je n'utilise que les paramètres type :
<count>1</count>
Ca fonctionne nickel et mon datagrid est rempli (avec une ligne, dans ce cas ci).
Par contre, si je rajoute les sous noeuds type:
<v ident="nom pour info" nr="1">valeur du paramètre</v>
Le programme s'arrête dans ce cas, et il me dit qu'il n'arrive pas à lire les sous noeuds.
J'aimerais savoir comment peut-on lire ces sous noeuds, récupérer la valeur du paramètre et le nom "vident" tout en pouvant lire les autres infos comme les premiers paramètres type <count>1</count>
Je vous remercie d'avance pour votre aide et vos suggestions.