OVH Cloud OVH Cloud

Problème lecture fichier XML

2 réponses
Avatar
Rob's
Bonjour,

Je tente d'=E9tablir un fichier de configuration d'une=20
application vb.net =E0 l'aide d'un fichier XML.

Deux probl=E8mes se posent :

- Le code qui me permet de lire le contenu de la balise=20
<SERVERNAME> me renvoit du texte brut contenant des les=20
espaces, tabulations et autres....

Public Function ConfigGetServer() As String
Dim XmlR As New XmlTextReader("Config.xml")
Dim e As XmlElement
Dim Retour As String =3D ""
Do While XmlR.Read
If XmlR.NodeType =3D XmlNodeType.Element Then
If XmlR.Name =3D "SERVERNAME" Then
Retour =3D XmlR.ReadElementString
End If
End If
Loop
XmlR.Close()
Return Retour
End Function

- Le code qui me permet de sauvegarder du texte =E0=20
l'int=E9rieur de ma balise <SERVERNAME> oblige celle ci =E0=20
aller =E0 la ligne pour faire la balise de fin </SERVERNAME>

Public Function ConfigSetServer(ByVal SqlServeur As=20
String)
Dim DocXml As New XmlDocument
Dim element As XmlElement
DocXml.Load("config.xml")
element =3D DocXml.DocumentElement("SERVERNAME")
element.InnerText =3D SqlServeur
DocXml.Save("Config.xml")
End Function


Merci pour votre aide .... :D

2 réponses

Avatar
Saulot
Pourquoi ne pas passer par un DataSet.

Dim FdsConfig as New DataSet
FdsConfig.ReadXml(CheminDuFichier)

'Recherche d'element.
Dim ServerName as string = FdsConfig.Tables("SERVERNAME").Rows(0)(0)
Remarque : Utiliser des index pour les Rows et les colonnes, c pas top
DONC :

Supposons que ta ligne xml soit de la sorte
<SERVERNAME Value="MonServeur" />
Dim ServerName as string = FdsConfig.Tables("SERVERNAME").Rows(0)("Value")

Bien Mieux encore:
<SERVERNAME Code="CurrentServeur" Value="MonServeur" />
Dim ServerName as string FdsConfig.Tables("SERVERNAME").Select("Code='CurrentServeur'")(0)("Value")

'Enregistrement :
FdsConfig.WriteXml(CheminDuFIchier)

J'espere que ca t'aidera ^^

"Rob's" a écrit dans le message de
news:205101c46ff7$db7464a0$
Bonjour,

Je tente d'établir un fichier de configuration d'une
application vb.net à l'aide d'un fichier XML.

Deux problèmes se posent :

- Le code qui me permet de lire le contenu de la balise
<SERVERNAME> me renvoit du texte brut contenant des les
espaces, tabulations et autres....

Public Function ConfigGetServer() As String
Dim XmlR As New XmlTextReader("Config.xml")
Dim e As XmlElement
Dim Retour As String = ""
Do While XmlR.Read
If XmlR.NodeType = XmlNodeType.Element Then
If XmlR.Name = "SERVERNAME" Then
Retour = XmlR.ReadElementString
End If
End If
Loop
XmlR.Close()
Return Retour
End Function

- Le code qui me permet de sauvegarder du texte à
l'intérieur de ma balise <SERVERNAME> oblige celle ci à
aller à la ligne pour faire la balise de fin </SERVERNAME>

Public Function ConfigSetServer(ByVal SqlServeur As
String)
Dim DocXml As New XmlDocument
Dim element As XmlElement
DocXml.Load("config.xml")
element = DocXml.DocumentElement("SERVERNAME")
element.InnerText = SqlServeur
DocXml.Save("Config.xml")
End Function


Merci pour votre aide .... :D
Avatar
Rob's
Bonjour,

Merci pour votre aide concernant la lecture du fichier
XML.
Auriez-vous une méthode comparable pour l'écriture ?

Merci.