From: Cedric.CARBONE@brainsoft.fr
Date: 06/09/2002 - 15:49
Bonjour à tous,
J'ai un problème soulevé par un de mes collègues concernant l'encodage.
Il a fait un agent (sous Lotus) qui doit charger un fichier XML grace au
Microsoft DOM.
Cela marche tres bien lorsqu'il n'y a pas d'accent mais dès qu'il en insere
un dans le fichier xml une erreur apparait :
Le parsage du codage actuel au codage spécidfié n'est pas pris en charge.
Je précise l'entete du fichier XML:
<?xml version="1.0" encoding="ISO-8859-1" ?>
Le code de l'agent pour ceux que ca interesse est joint ci-desssou.
Si qq1 à une idée...
Cédric Carbone
BrainSoft
Le code:
Sub Initialize
On Error Goto errHandling
Dim session As notessession
Dim db As NotesDatabase
Dim viewParam As notesview
Dim docParam As notesdocument
Dim doc As NotesDocument
'variables servant à traiter le XML
Dim XmlHttpRequest As Variant
Dim docXml As Variant
Dim Element As Variant
Dim ElementsList As Variant
Dim NumItems As Integer
Dim ChildListElement As Variant
Dim AttElement As Variant
Dim ChildElement As Variant
Dim NumChildren As Integer
Dim i,NumElements As Integer
Dim j As Integer
Dim Request As String
Dim xmltext As String
Dim idArticle As String
Dim dateArticle As String
Set session = New NotesSession
Set db=session.currentdatabase
Set viewParam=db.getview("ViewParam")
Set docParam=viewParam.getfirstdocument
Set XmlHttpRequest = CreateObject("Microsoft.XMLHTTP")
'etablie la connexion en HTTP avec le fichier
Request=docParam.Url_Serveur(0)+"/"+docParam.File_XML(0)
Call XmlHttpRequest.Open("GET", Request, False)
'envoye le flux de données correspondant au contenu du fichier XML
Call XmlHttpRequest.Send
'créer un objet de type XML
Set docXml = CreateObject("Microsoft.XMLDOM.1.0")
'met le dowload du XML en mode asynchrone
docXml.async = False
'propriété qui permet de faire abbtraction de la DTD au fur et à
mesure de l'interprètation pour la valeur FALSE
docXml.validateOnParse = False
docXml.resolveExternals = False
'validation du chargement du XML
xmltext=XmlHttpRequest.responseText
If (docXml.loadXml(XmlHttpRequest.responseText) = False) Then
Msgbox "Parser error:" +docXml.parseError.reason+"Erreur code
:"+Cstr(docXML.parseError.errorcode) , 16 , "Error processing"
Else
'positionnement sur le noeud choisi et on obtient la liste de
tous les élements du noeud
Set ElementsList = docXml.selectnodes("Articles/Article")
NumElements = ElementsList.length
For i = 0 To (NumElements - 1)
'on se positionne sur l'element i du noeud précédemment
choisi
Set Element = ElementsList.item(i)
'positionnement sur un des elements que contient la liste
d'elements du noeud
Set ChildListElement = Element.ChildNodes
idArticle=Element.getAttribute("id")
dateArticle=Element.getAttribute("date")
Call
CreateDocArticle(ChildListElement,db,idArticle,dateArticle)
Next i
End If
Set docXml=Nothing
Set XmlHTTPRequest=Nothing
Exit Sub
errHandling:
Print Str(Erl) +" : " + Error
Resume Next
End Sub
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|