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:
or ça, ce fourbe de parseur m'envoie l'erreur:
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élécharger une vidéo</h2> <table class="newscadre" cellspacing="0"> <tr> <td class="videocontenu"><strong>Télé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>
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
Partager