Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

From: Gregoor, Van Der Eyken (geyken@esual.com)
Date: 28/05/2002 - 10:51


Bonjour à tous,

Je suis confronté de nouveau à un problème de chargement de données Xml en Asp, cela m'est en effet déjà arrivé mais les réponses fournies la dernière fois ne suffisent plus :

D'une part je travaille sur mon serveur local
D'autre part je n'ai une faible quantité d'informations à charger.

J'ai pourtant joué avec la propriété async, l'évènement readystatechange pour attendre (valeur 4) que les données soit toutes arrivées. Je charge même le contenu Xsl avant Xml (pour être sûr de ne pas attendre la fin du process).

toujours un message d'erreur

-The stylesheet does not contain a document element. The stylesheet may be empty, or it may not be a well-formed XML document.
quand async est false

        Sub loadTransformer()
                'chargement de l'Url Xsl de formattage, création du processeur Xsl
                m_oXmlTransformer.async=false
                m_oXmlTransformer.load(CS_URLXSLESUAL)
        
                Set m_oXslTemp.stylesheet=m_oXmlTransformer
                Set m_oXslProc=m_oXslTemp.createProcessor()
        End Sub

        Sub loadData()
                'création de l'Url renvoyé par Brio comprenant les paràmètres
                Dim m_sUrlFinalBrio
                m_sUrlFinalBrio=CS_URLXMLBRIO&Request.QueryString
                
                'chargement de l'Url Brio comprendant les paramètres
                m_oXmlData.async=false
                m_oXmlData.load(m_sUrlFinalBrio)
        End Sub

The data necessary to complete this operation is not yet available.
quand async est true
dans ce cas je passe par m_oXmlTransformer_onreadystatechange() (d'après msdn c'est l'évènement implicitement appelé à chaque changement d'état)

        
        Sub m_oXmlTransformer_onreadystatechange()
                  Dim iErr
                  'debug : Response.Write("m_oXmlData "&m_oXmlData.readyState&" m_oXmlTransformer "&m_oXmlTransformer.readyState)
                  If m_oXmlTransformer.readyState = 4 then
                            loadData()
                  End If
        End Sub

Merci beaucoup, j'aimerais surtout comprendre pourquoi un tel comportement est différent qu'en interprétation cliente JScript (même objets et méthodes) qui marche sans aucun problème.

Gregoor

Code intégral
<%
        'Url Xml Brio
        Const CS_URLXMLBRIO="http://localhost/support/brio/test1.xml"
        'Url Xsl de transformation de Brio pour esual
        Const CS_URLXSLESUAL="http://localhost/support/brio/BrioInventoryAnalysisELM_20020528.xsl"
        
        'concerne les objets Xml membres
        Set m_oXmlData=Server.CreateObject("Msxml2.DOMdocument.4.0")
        Set m_oXmlTransformer=Server.CreateObject("Msxml2.FreeThreadedDOMDocument.4.0")
        Set m_oXslTemp=Server.CreateObject("MSXML2.XSLTemplate.4.0")
        Dim m_oXslProc
        
        loadTransformer()
        
        
        'charge le transformateur Xsl esual
        Sub loadTransformer()
                'chargement de l'Url Xsl de formattage, création du processeur Xsl
                m_oXmlTransformer.async=true
                m_oXmlTransformer.load(CS_URLXSLESUAL)
        
                Set m_oXslTemp.stylesheet=m_oXmlTransformer
                Set m_oXslProc=m_oXslTemp.createProcessor()
        End Sub
        
        'charge le flux Xml de données Brio
        Sub loadData()
                'création de l'Url renvoyé par Brio comprenant les paràmètres
                Dim m_sUrlFinalBrio
                m_sUrlFinalBrio=CS_URLXMLBRIO&Request.QueryString
                
                'chargement de l'Url Brio comprendant les paramètres
                m_oXmlData.async=true
                m_oXmlData.load(m_sUrlFinalBrio)
        End Sub
        
        'lorsqu'il y a changement d'état de m_oXmlData, test pour voir si les données sont prêtes, si oui alors transformation
        Sub m_oXmlData_onreadystatechange()
                  Dim iErr
                  'debug : Response.Write("m_oXmlData "&m_oXmlData.readyState&" m_oXmlTransformer "&m_oXmlTransformer.readyState)
                  If m_oXmlData.readyState = 4 then
                            iErr= m_oXmlData.parseError
                            If iErr.errorCode <> 0 then
                                    'debug : Response.Write(iErr.reason&"<br/>")
                                     Response.Write(iErr.reason&"<br/>")
                                m_oXslTemp.input=m_oXmlData
                                m_oXslTemp.output=Response
                                m_oXslTemp.transform
                            Else
                                    'debug : Response.Write("success"&"<br/>")
                            End If
                  End If
        End Sub
        
        'lorsqu'il y a changement d'état de m_oXmlTransformer, test pour voir si les données sont prêtes, si oui alors chargement des données Xml
        Sub m_oXmlTransformer_onreadystatechange()
                  Dim iErr
                  'debug : Response.Write("m_oXmlData "&m_oXmlData.readyState&" m_oXmlTransformer "&m_oXmlTransformer.readyState)
                  If m_oXmlTransformer.readyState = 4 then
                            loadData()
                  End If
        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

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement