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 :

[VB.NET] XML et Unicode


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 22
    Points : 16
    Points
    16
    Par défaut [VB.NET] XML et Unicode
    Bonjour,

    J'ai un fichier XML avec un codage en Unicode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="unicode"?>
    et VB plante lorsqu'il essai de le lire, lorsque je change le codage et que je met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?xml version="1.0" encoding="ISO-8859-1"?>
    VB lit bien le fichier. Est-ce que quelqu'un à déjà rencontré ce problème et faut-il ajouter une référence ou un composant.

    Aidez moi s'il vous plaît !!! Merci d'avance

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Non c'est tout a fait normal que tu aies cette erreur

    l'encodage fait partie du document, tu peux pas le changer comme tu veux (a moins de creer le document dans l'encodage ISO-8859-1)

  3. #3
    Membre régulier Avatar de chman
    Inscrit en
    Novembre 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 94
    Points : 97
    Points
    97
    Par défaut
    salut,

    est-ce l'attribut unicode d'encoding existe ? est-ce qu'il est case-sensitive

    pour unicode, il faut pas utiliser UTF-8 ou UTF-16 ?

    l'attribut encoding est là justement pour indiquer quel jeu de caractères utilisés pour décoder le document

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Piotrek j'ai mal formuler mon pb, en fait ça marche pas avec unicode mais bien si je change en ISO-8859-1.
    Je pense que Unicode existe puisque ce fichier à été écrit par un professionnel et qu'il fonctionne pour une application Flash.

  5. #5
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    ok j'avais pas compris

    chman a raison

    Mais comme il te faut transformer le format de toutes les lettres en unicode

    Ouvre ton doc xml dans un editeur xml quelconque
    (ex: http://www.snapfiles.com/get/xmleditpro.html freeware)

    Change le nom du format et enregistre-le, les caracteres devraient etre transformes

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    C'est vrai que se serait la méthode al plus simple amsi malheureusement je ne peux pas !
    Je dois absolument composé avec un fichier en Unicode.
    Merci quand même.

  7. #7
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    t'as essaye en mettant:

    <?xml version="1.0" encoding="UTF-8"?> ou
    <?xml version="1.0" encoding="UTF-16"?>

    si ca marche pas, montre voir le code qui te permet d'ouvrir le fichier xml

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    ça marche tjs pas.

    Voici mon code pour effectuer une recherche dans le fichier XMl et l'afficher dans différent textbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    Private Sub BcdRecherche_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles BcdRecherche.Click
     
            'Déclaration des variables locales
            Dim Noeud As XmlNode
            Dim Noeuds As XmlNodeList
            Dim Critère As String
            Dim FichierXml As New XmlDocument
     
            If TxtMot.Text = "" Then
                Exit Sub
            End If
     
            FichierXml.Load("glossaireCian2.xml")
     
            'Recherche de l'entrée à partir du mot
            Critère = "//entree[mot=""" & TxtMot.Text & """]"
            Noeud = FichierXml.SelectSingleNode(Critère)
            Noeuds = Noeud.ChildNodes
     
            'Remplissage des champs à partir de la recherche
            For Each Noeud In Noeuds
                Select Case Noeud.Name
                    Case "mot"
                        TxtMot.Text = Noeud.InnerText
                    Case "attribut"
                        txtAttrib.Text = Noeud.InnerText
                    Case "definition"
                        TxtDéf.Text = Noeud.InnerText
                    Case "titremodule"
                        ListModules.SelectedItem = Noeud.InnerText
                    Case "url"
                        TxtURL.Text = Noeud.InnerText
                    Case "titreCours"
                        TxtCours.Text = Noeud.InnerText
                    Case "titreProgramme"
                        TxtProgramme.Text = Noeud.InnerText
                    Case "date"
                        TxtDate.Text = Noeud.InnerText
                    Case "Auteur"
                        TxtAuteur.Text = Noeud.InnerText
                    Case "illustration"
                        TxtIllust.Text = Noeud.InnerText
                    Case "video"
                        TxtVidéo.Text = Noeud.InnerText
                    Case "animation"
                        TxtAnim.Text = Noeud.InnerText
                    Case "son"
                        TxtSon.Text = Noeud.InnerText
                    Case "reference"
                        TxtRéf.Text = Noeud.InnerText
                    Case "lien"
                        TxtLienUrl.Text = Noeud.InnerText
                End Select
            Next
        End Sub
    Cette source est une aaptation à on cas d'un exemple trouvé dans un livre de programmation totalement axé sur VB.Net(un livre très bine soit dit en passant).

    J'ai surement fait des erreurs mais je n'arrive pas à les voir

    voici le message d'erreur qui apparaît :

    Une exception non gérée du type 'System.Xml.XmlException's'est produite dans 'system.xml.dll'

  9. #9
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    mets un Try au debut

    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    catch ex as Xml.XmlException
         msgbox ex.message
    end try
    a la fin, et dis voir ce que ca donne comme erreur.

  10. #10
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Voilà le message d'erreur :

    Il existe un caractère non valide, dans le codage donné. Ligne 15, position 31.

  11. #11
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Bon il y a de l'avancée, en effet c'est bien le codage Unicode qui marche pas puis que en ISO-8859-1 la définition apparaît.
    Merci à toi Piotrek de ton aide et merci pour la petite astuce du Try.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [vb.net][xml] probleme de lecture de fichier
    Par graphicsxp dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/07/2005, 11h51
  2. [VB.NET][XML] Récupere l'attribut du dernier noeud ds un XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 30/09/2004, 14h14
  3. [VB.NET] [XML] Suppression d'un noeud dans un fichier XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2004, 11h24
  4. [VB.NET] [XML] Modification d'une valeur
    Par kirk80 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 09/09/2004, 16h15
  5. [VB.NET] XML - Trier des noeuds
    Par nako dans le forum VB.NET
    Réponses: 2
    Dernier message: 10/06/2004, 09h13

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