From: Ulrick PERTIN - Société A2Bel (info@a2bel.com)
Date: 12/08/2003 - 20:59
J'essaye de récupérer les données d'une page XML en ASP mais les données
reçues ne sont à priori pas dans le bon encodage, ce qui plante le parseur.
J'ai beau chercher partout, je ne trouve rien pour résoudre mon problème.
Fichier ASP
<%
'----------------------------------------------------------------------
'-------- requete envoyée à ORT / request sent to ORT -----------------
'----------------------------------------------------------------------
requete = requete & "<?xml version='1.0' encoding='iso-8859-1'?>"
requete = requete & "<ort:message xmlns:ort='http://www.ort.fr/NEWPORT/V2'>"
requete = requete & "<ort:_1 type='110'>"
requete = requete & "<ort:_7 type='010'>NPORT</ort:_7>"
requete = requete & "<ort:_8 type='010'>2</ort:_8>"
requete = requete & "<ort:_9 type='020'>1</ort:_9>"
requete = requete & "<ort:_10 type='020'>1</ort:_10>"
requete = requete & "<ort:_11 type='010'>EXTERNE</ort:_11>"
requete = requete & "<ort:_12 type='010'>QIDE</ort:_12>"
requete = requete & "<ort:_14 type='010' >164748</ort:_14>"
requete = requete & "<ort:_16 type='010'>20020214</ort:_16>"
requete = requete & "<ort:_17 type='010'>092815</ort:_17>"
requete = requete & "<ort:_19 type='010'>ORT</ort:_19>"
requete = requete & "<ort:_33 type='010'>JETSET</ort:_33>"
requete = requete & "</ort:_1>"
requete = requete & "<ort:_2 type='110'>"
requete = requete & "<ort:_1 type='110'>"
requete = requete & "<ort:_26 type='010'>SELF</ort:_26>"
requete = requete & "<ort:_27 type='010'>10</ort:_27>"
requete = requete & "<ort:_28 type='010'>1</ort:_28>"
requete = requete & "<ort:_31 type='010'>15000</ort:_31>"
requete = requete & "</ort:_1>"
requete = requete & "<ort:_2 type='110'>"
requete = requete & "<ort:_100100018 type='010'>ORT</ort:_100100018>"
requete = requete & "</ort:_2>"
requete = requete & "</ort:_2>"
requete = requete & "</ort:message>"
'---------------------------------------------------------------------------
---------------------
'-------- envoi requete et récupération résultat /sending and receiving
request -----------------
'---------------------------------------------------------------------------
---------------------
strXML = "http://www.services.ort.fr/WebServicesORT/demo/access/access.xml"
strStyleSheet = "mb.xsl"
Set oHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
oHTTP.open "POST", strXML, false
oHTTP.setRequestHeader "Content-Type", "text/xml"
oHTTP.send(requete)
sResponseXML = oHTTP.responseText
Set oHTTP = Nothing
Response.Write "<p>Résultat envoyé par access.xml :</p><p>" & sResponseXML &
"</p>"
'---------------------------------------------------------------------------
--
'-------- vérif parseur / validate
arsing ----------------------------------
'---------------------------------------------------------------------------
--
function reportParseError(error)
s = ""
for i =0 to error.linepos
s = s & " "
next
r = "<br><font face=Verdana size=2><font size=4>XML Error loading '" &
error.url & "'</font>" & "<P><B>" & error.reason & "</B></P></font>"
if error.line > 0 then r = r & "<font size=3><XMP>at line " & error.line
& ", character " & error.linepos & vbCrLf & error.srcText & vbCrLf & s &
"</XMP></font>"
response.write r
response.end
end function
'--------------------------------------------------------------------
'-------- parse le résultat XML dans le fichier ASP / parsing -------
'--------------------------------------------------------------------
Set objXML = CreateObject("MSXML2.DOMDocument")
Set objXSL = CreateObject("MSXML2.DOMDocument")
objXML.loadXML(sResponseXML)
if objXML.parseError.errorCode <> 0 then reportParseError(objXML.parseError)
objXSL.load(Server.MapPath(strStyleSheet))
Response.Write objXML.transformNode (objXSL)
Set objXML = Nothing
Set objXSL = Nothing
%>
Fichier XSL
<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ort="http://www.ort.fr/NEWPORT/V2"
version="1.0">
<xsl:template match="/">
<xsl:for-each select="/ort:message/ort:_2/ort:_2/ort:_3/ort:_4">
<p>RCS : <xsl:value-of select="ort:_100100001" /></p>
<p>Raison sociale : <xsl:value-of select="ort:_100100018" /></p>
<p>--------------------------------------------------</p>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
--
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
|