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 :

encoding et xmlReader


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2004
    Messages : 58
    Par défaut encoding et xmlReader
    Salut tout le monde,

    Voici mon problème, j'utilise la classe XmlTextReader pour parcourir un fichier html.
    Jusque là tout va bien, sauf que, par défaut l'encoding est UTF-8, et j'ai des caractères accentués dans mes documents dont voici un exemple:

    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
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>titre</title>
     
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
     
    		<meta http-equiv="Content-Style-Type" content="text/css" />
     
    		<meta http-equiv="Content-Language" content="fr" />
     
    		<meta name="Description" content="Vidéos " />
     
     
    	<body >
    	<div id="conteneur">
    		<h1 id="header"></a></h1>
     
                    <div id="bulle"></div>
     
                    <ul id="menu">
     
    			<li><a href="index.php">Accueil</a></li>
     
    			<li><a href="liens.php">Liens</a></li>
     
    		        <li><a href="forums/">Forums</a></li>
     
    	 	        <li><a href="irc.php">Chat IRC</a></li>
     
    		</ul>
     
     
     
    		<div id="contenu">
     
    		<h2>T&eacute;l&eacute;charger une vid&eacute;o</h2>
    		<table class="newscadre" cellspacing="0">
    		<tr>
    			<td class="videocontenu"><strong>T&eacute;l&eacute;charger : </font><a href="mavidéo.avi"><img src="../images/download.gif" width="16" height="16" border="0"></a> </strong><br><br><b>Votes :</b> 14 <br><b>Moyenne des votes</b> : 9.1/10</td>
    			<td class="videotmb"><img src="170207b.jpg" border="1"></p></td>
    		</tr>
    		</table><br>
     
    		<br>
     
    		<br>
     
    		</div>
     
    	</div>
    	</body>
    </html>
    or ça, ce fourbe de parseur m'envoie l'erreur:
    Erreur: Invalid character in the given encoding. Line 7, position 40.

    ce qui correspond au caractère accentué. Visiblement le parser utilise par défaut UTF-8, il faudrait sans doutes qu'il utilise UTF-16, mais je ne sais pas comment forcer cette valeur, qqun peut-il m'aider?

    voici mon code:
    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
     
    Imports System
    Imports System.Xml
    Imports System.Collections
    Namespace ParserXML
     
        Class Class1
     
            <STAThread()> _
            Shared Function LookForNode(ByVal text As String(), ByVal node As String, ByVal attribute As String) As String
     
                Try
                    '--- Déclaration et ouverture du fichier demandé
                    Dim reader As XmlTextReader = New XmlTextReader(text)
                    '--- Lecture 
                    While reader.Read
                        Select Case reader.NodeType
                            Case XmlNodeType.Element
                                Dim sNameElement As String = reader.Name
                                If sNameElement = node Then
                                    While reader.MoveToNextAttribute()
                                        If reader.Value = attribute Then
                                            While reader.MoveToElement
                                                If reader.Name = a Then
                                                    reader.MoveToNextAttribute()
                                                    Console.WriteLine(reader.Value)
                                                    Return reader.Value
                                                End If
                                            End While
                                        End If
                                    End While
                                End If
                                Console.WriteLine(sNameElement)
                            Case XmlNodeType.EndElement
                                Dim sNameEndElement As String = reader.Name
                                Console.WriteLine(sNameEndElement)
                            Case XmlNodeType.Attribute
                                Dim sNameAttribute As String = reader.Name
                                Console.WriteLine(sNameAttribute)
                            Case XmlNodeType.Text
                                Dim sNameText As String = reader.Value
                                Console.WriteLine(sNameText)
                            Case Else
     
                        End Select
                    End While
                    '--- Lit la ligne de caractères suivante à partir 
                    '--- du flux d'entrée 
                    Console.ReadLine()
                Catch Ex As XmlException
                    Console.WriteLine("Erreur: " + Ex.Message)
                End Try
            End Function
        End Class
    End Namespace

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Essaie d'utiliser un StreamReader au lieu de passer le chemin du fichier dans le constrcteur de ton XmlTextReader.

    Sinon la question en rapport en avec la manipulation de xml en VB.net, je déplace vers le forum VB.Net

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/01/2005, 17h38
  2. [SAX] erreur lors de la creation du XMLReader
    Par vir dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 19/08/2004, 01h12
  3. [encoding] symbole €
    Par phoebe dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 11/05/2004, 16h57
  4. Réponses: 4
    Dernier message: 07/05/2004, 21h15
  5. [JSP] encoder et décoder les param d'une URL ?
    Par iubito dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 22/12/2003, 11h34

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