Bonjour,
J'ai un document XML qui est "bindé" à des textbox (WPF).
1 2 3 4 5 6
| Dim systemdata As XmlDataProvider = New XmlDataProvider()
Private Sub MainWindow_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
systemdata.Source = New Uri("fichier.xml")
systemdata.XPath = "Base"
Grid1.DataContext = systemdata
End Sub |
Et il est sauvé ainsi:
systemdata.Document.Save("fichier.xml")
Par ailleurs, dans le code VB, je dois détecter les éléments vides à l'intérieur de ce même fichier XML. J'ouvre donc le fichier XML et je lis l'élément dont j'ai besoin et le place dans une variable:
1 2 3 4 5 6 7 8
| Dim sysname As String = ""
Dim XmlReader As New XmlTextReader("Fichier.xml")
While XmlReader.Read()
If (XmlReader.NodeType = XmlNodeType.Element) Then
If (XmlReader.Name = "Name") Then
sysname = XmlReader.ReadString()
End If
End If |
A la fin de l'élément, je voudrais vérifier de quoi il était rempli..et notamment si il est vide:
1 2 3 4 5 6 7
| If (XmlReader.Name = "Name" And XmlReader.NodeType = XmlNodeType.EndElement) Then
If sysname = String.Empty Then
MsgBox("Element Vide", 48, "Attention")
End If
End If
End While
XmlReader.Close() |
Là, je me rend compte que les éléments vides ne sont pas détectés.
En regardant le fichier XML de plus près, je me rend compte que lorsqu'il est sauvé (systemdata.Document.Save("fichier.xml"), il y a un reformatage qui est effectué!
Un élément vide de ce type:
se voit sauvé en:
Il y a donc vraisemblablement un CRLF (line break carriage return)...qui fait qu'il n'est pas détecté comme ""/String.Empty!?
Ma question est donc la suivante:
Comment puis-je prévenir le "reformatage" de mon fichier XML...et maintenir les éléments vides sur une seule ligne?
Merci!!!
Partager