Bonjour,
Je développe actuellement un service web en VB.Net, (avec le framework 2.0) qui doit décomposer un flux XML pour créer des requêtes SQL et les exécuter.
J'ai donc procédé comme ci-dessous pour lire mon fichier XML
Mon problème est que mon flux contient des 'é' et qu'il sont converti en '?' lorsque la chaine est passer au service web. Lorsque j’appelle LoadXml() j’obtiens alors l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <WebMethod()> Public Function ImportFluxXML(ByVal Flux_XML As String) As String Dim DocXML As New XmlDocument 'Décomposion du Flux XML pour sauvegarder le contrôle' Try 'chargement du flux XML dans l objet XMLDocument' DocXML.LoadXml(Flux_XML) Catch ex As Exception Return ex.Message End Try '''''''''''''''''''''''''''''''''''''''' 'Lecture du fluxJ'ai donc ajouté le code suivant pour convertir ma chaine ANSI en UTF-16:Le caractère '?', valeur hexadécimale 0x3F, ne peut pas être inclus dans un nom. Ligne 2, position 27946.
Mais les caractères '?' non pas été convertis en 'é'.
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 <WebMethod()> Public Function ImportFluxXML(ByVal Flux_XML As String) As String Dim DocXML As New XmlDocument Dim Flux_XML_ANSI() As Byte Dim Flux_XML_UTF16 As String 'convertion en UTF16' Flux_XML_UTF16 = "" Flux_XML_ANSI = Encoding.GetEncoding(1252).GetBytes(Flux_XML) Flux_XML_ANSI = Encoding.Convert(Encoding.GetEncoding(1252), Encoding.BigEndianUnicode, Flux_XML_ANSI) Flux_XML_UTF16 = Encoding.BigEndianUnicode.GetString(Flux_XML_ANSI) 'Décomposion du Flux XML pour sauvegarder le contrôle' Try 'chargement du flux XML dans l objet XMLDocument' DocXML.LoadXml(Flux_XML_UTF16) Catch ex As Exception Return ex.Message End Try '''''''''''''''''''''''''''''''''''''''' 'Lecture du flux
Quelqu'un aurait il une solution ?
Merci d'avance
Partager