IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Element vide XML découpé en 2 lignes!


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut Element vide XML découpé en 2 lignes!
    Bonjour,

    J'ai un document XML qui est "bindé" à des textbox (WPF).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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!!!

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 158
    Par défaut
    J'ai trouvé la solution, j'enlève à la variable les caractères superflus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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()
    			sysname = sysname.Replace(vbCr, "").Replace(vbLf, "").Replace(" ", "")
    		End If 
    	End If

Discussions similaires

  1. [XSLT] xml vers csv et lignes vides
    Par merlin83 dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 01/07/2010, 17h02
  2. contraindre deux elements positionné à rester sur la meme ligne
    Par ChtiGeeX dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 18/10/2006, 19h02
  3. [Tableaux] Comment enlever les elements vide d'un array
    Par BernardT dans le forum Langage
    Réponses: 9
    Dernier message: 07/07/2006, 12h12
  4. Réponses: 3
    Dernier message: 11/05/2006, 00h27
  5. [XML][DOM] ecriture Element dans .xml
    Par sebastien2222 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 03/05/2006, 14h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo