Datagrid vers XML (probleme de logique)

Résolu
eikeshi Messages postés 4 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 7 juillet 2008 - 2 juil. 2008 à 15:24
eikeshi Messages postés 4 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 7 juillet 2008 - 3 juil. 2008 à 13:37
Bonjour à tous, j'enregistre dans un fichier XML, des données stockées dans un datagrid. De ce côté la pas de soucis, par contre j'ai un probleme lié a la logique de mon code. En fait je veux ajouter des noeuds qui ont le meme nom ('xsell') mais pas les mêmes attributs...Et je me rend compte qu'il y a un probleme de positionnement dans le fichier XML.
Comment puis-je ajouter mes balises en les positionnant ou je le souhaite ?

Mon code :

Dim

lg
As
Integer = 0
'compteur lignes du datagrid
Dim cptXsell
As
Integer = 0

For

lg = 0 To (dgvXls.RowCount - 2)

'tableau de string contenant les valeurs des 6 references xsell_id
Dim cellRef()
As
String = {dgvXls.Item(8, lg).Value.ToString, dgvXls.Item(9, lg).Value.ToString, dgvXls.Item(10, lg).Value.ToString, dgvXls.Item(11, lg).Value.ToString, dgvXls.Item(12, lg).Value.ToString, dgvXls.Item(13, lg).Value.ToString}

Dim
document As XmlDocument = New XmlDocument
document.Load(f_NomXml)

Dim navigateur
As XPathNavigator = document.CreateNavigator()

Dim noeuds
As XPathNodeIterator = navigateur.Select(
"/Silouhette/Products/products_xsell")
noeuds.MoveNext()

For cptXsell = 0
To 5

If cellRef(cptXsell) <>
""
Then

noeuds.Current.AppendChild(
"<xsell xsell_id='" & cellRef(cptXsell) &
"' type='' sort='" & cptXsell + 1 &
"'></xsell>")
noeuds.MoveNext()
'va au noeud 'xsell' suivant
Else
navigateur.MoveToNext()
'va au noeud 'products_xsell' suivant
End
If

Next cptXsell

document.Save(f_NomXml)
Next

lg

Merci de votre aide.

1 réponse

eikeshi Messages postés 4 Date d'inscription mardi 7 mars 2006 Statut Membre Dernière intervention 7 juillet 2008
3 juil. 2008 à 13:37
Bonjour, j'ai trouvé mon problème. c'était bien un probleme de positionnement avec le navigateur.
Pour le résoudre j'ai fait :

Dim

document
As XmlDocument =
New XmlDocument
document.Load(f_NomXml)

Dim navigateur
As XPathNavigator = document.CreateNavigator()

Dim noeuds
As XPathNodeIterator = navigateur.Select(
"/export/products/products_xsell")

'parcours tout les noeuds
While noeuds.MoveNext
noeuds.MoveNext()

End
While

For cptXsell = 0
To 5

If cellRef(cptXsell) <>
""
Then
'insere la balise xsell avec ses attributs
noeuds.Current.AppendChild(
"<xsell xsell_id='" & cellRef(cptXsell) &
"' type='' sort='" & cptXsell + 1 &
"'></xsell>")

Else
Exit
For
End
If

Next cptXsell

document.Save(f_NomXml)

....
3
Rejoignez-nous