2009-06-18 5 views
0

Je reçois l'erreur suivante lors de l'analyse de XML en tant que réponse d'un service Web.MSXML2.DomDocument.3.0 caractères non valides

  • Un caractère non valide a été trouvé dans le contenu du texte.

webservice envoie des réponses avec quelques caractères comme Ψ par exemple, ou des tests structurés HTML malformés avec "ou < et>

Le code utilisé est:.

Set var_xmlPostObject = CreateObject("MSXML2.ServerXMLHTTP.3.0") 
Set var_xmlRequestDoc = CreateObject("MSXML2.DOMDocument") 
Set var_xmlResponseDoc = CreateObject("MSXML2.DomDocument.3.0") 
'Send xml 
Call var_xmlRequestDoc.loadXML(str_xml) 
Dim var_pi As Variant 
Set var_pi = var_xmlRequestDoc.CreateProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'") 
Call var_xmlRequestDoc.InsertBefore(var_pi, var_xmlRequestDoc.ChildNodes(0)) 'open the POST (or GET) connection to the web server 
Call var_xmlPostObject.open("POST", str_soapPost, False) 
Call var_xmlPostObject.setRequestHeader("Content-Type", str_soapType) 
Call var_xmlPostObject.send(var_xmlRequestDoc.xml) 
'Set response properties 
var_xmlResponseDoc.async = False 
var_xmlResponseDoc.validateOnParse = False 
var_xmlResponseDoc.resolveExternals = False 
Set var_xmlResponseDoc = var_xmlPostObject.responseXML 
Print "var_xmlResponseDoc.xml: " & var_xmlResponseDoc.xml 
If var_xmlResponseDoc.parseError.errorCode <> 0 Then 
    'Alert 
Else 
    'Do something 
End if 

La question est de savoir si il y a un moyen de détecter les caractères qui amène le message avant de l'analyser? Un exemple serait très gentil

Merci d'avance

Répondre

0

Vous pourriez opter pour une approche différente. Notes 8 vous permet de consommer un service Web en mode natif et de gérer uniquement certaines classes LotusScript (ou Java). Le code de base s'occupera de l'encodage, etc. Vous n'avez donc pas besoin de le faire. Si, pour des raisons politiques, vous êtes bloqué sur une version obsolète de Lotus Notes, vous pouvez utiliser [Stubby] [1] (le slayer de service Web) pour générer le code. Beaucoup plus fiable que la connexion OLE.

[1]: http://www.nsftools.com/stubby/ Stubby

Questions connexes