lomatic
Messages postés37Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 9 octobre 2009
-
29 avril 2009 à 14:53
lomatic
Messages postés37Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 9 octobre 2009
-
30 avril 2009 à 17:34
Bonsoir,
Je rencontre actuellement des problèmes afin de pouvoir lire le contenu de mon fichier XML qui n'est autre que le fichier Settings.settings généré par Visual Studio 2008.
Voici le code utilisé afin de lire le contenu du noeud Setting contenant comme paramètre Name "nomReseau".
Dim documentXML as
New XmlDocument
Dim
Const CHEMIN
As
String =
"C:\Documents and Settings\btsiris\Mes documents\Visual Studio 2008\Projects\Sj.DotNetStats\Sj.DotNetStats.ServiceExtraction\My Project\Settings.settings"documentXML.Load(CHEMIN)
Dim oNode
As XmlNode = documentXML.SelectSingleNode(
"/Settings/Setting[@Name='nomReseau']")
If
Nothing
Is oNode
Then
MessageBox.Show(
"Setting inconnu")
Else
MessageBox.Show(oNode.InnerText)
End
If
J'ai essayé de reproduire ce qui a été expliqué dans un topic précédement résolu mais je dois avoir un problème au niveau du chemin... Pourriez-vous m'éclairer un peu s'il vous plait ?
lomatic
Messages postés37Date d'inscriptionmercredi 7 mars 2007StatutMembreDernière intervention 9 octobre 2009 30 avril 2009 à 17:34
Bonsoir et merci pour ta réponse.
J'ai essayé en vain plusieurs syntaxes différentes dont "/SettingsFile/Settings/Setting[@Name='nomReseau']" mais cela ne fonctionnait pas. J'ai donc trouvé une méthode intermédiaire que je me permets de poster pour ceux qui souterais la regarder voir l'utiliser.
Deux méthodes : une permettant la modification du fichier Settings et une permettant la lecture du champs.
Private
Sub LireSettings()
TrydocumentXML.Load(CHEMIN)
For
Each
Me.node
In documentXML.Item(
"SettingsFile").Item(
"Settings")
If
Me.node.Name =
"Setting"
Then
'Assigne le contenu de la node ayant pour attribut name "nomReseau" … la textbox
If
Me.node.Attributes.GetNamedItem(
"Name").Value =
"nomReseau"
Then
If
Me.node.LastChild.Name =
"Value"
ThentxtNomReseau.Text =
Me.node.LastChild.InnerText
End
If
End
If
'Assigne le contenu de la node ayant pour attribut name "nomPartage" … la textbox
If
Me.node.Attributes.GetNamedItem(
"Name").Value =
"nomPartage"
Then
If
Me.node.LastChild.Name =
"Value"
ThentxtPartageReseau.Text =
Me.node.LastChild.InnerText
End
If
End
If
End
If
Next
Me.node
Catch ex
As XmlExceptionMessageBox.Show(ex.Message,
Voici le principe des deux méthodes, on va chercher l'attribut Name "XXXX" dans Setting et s'il le trouve, la méthode assignera le contenu de "Value" dans une textbox. Même principe pour l'écriture dans le fichier Settings sauf que l'on écrit le contenu de la textbox dans "Value" puis on sauvegarde le fichier.
Si vous avez quelques commentaires concernant ce petit code ou des éventuelles améliorations possibles, je suis preneur ;).