DevTrain

Autor: Andreas Rauch

XMLHTTP - XML Daten vom Server

XMLHTTP.Request - XML Daten vom Server

Sie haben ein eAnwendung und benötigen die Daten im XML Format. Eine schöne Methode, um XML Daten vom Server zu bekommen, bietet die Mehtode über XMLHTTP. In unserem Beispiel verwenden wir eine ASP Seite für die Anfrage der XML Daten und eine Seite, um die Daten zu liefern. Die Methode gleicht einem Sender und einem Empfänger. Wir stellen eine Anfrage und bekommen XML Daten zurück.

Wie gehts und was kostet sowas? Hier kommts und zwar komplett umsonst.

Dazu erstellen wir 2 ASP Seiten.

Zunächst die Anfrage Seite, in der wir mit xmlhttp.open die Anfrage an die empfang.asp Seite senden. Zum Übermitteln verwenden wir die Methode --> GET. Ausgeführt wird die ANfrage mit xmlhttp.send() und die ANtwort holen wir uns mit xmlhttp.responseText, die wir auch gleich in dem DOM laden.

sender.asp

<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--

var rs;
var xmldoc;
var xmlstream;


function getRS_onclick() {
 rs = new ActiveXObject("ADODB.Recordset");
 xmldoc = new ActiveXObject("Msxml2.DOMDocument");
    var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    xmlhttp.Open("Get","http://ihrserver/Project1/empfang.asp?getRecordset=YES",false);
    xmlhttp.send();
    xmldoc.loadXML(xmlhttp.responseText); //hier bekommen Sie das Ergebnis des  Requests
    rs.Open(xmldoc); //... das wir nun auch gleich aus dem DOM in ein Recordset laden     

//-->
</SCRIPT>

<INPUT type="button" value="Get Recordset" id=getRS name=getRS LANGUAGE=javascript onclick="return getRS_onclick()">

So nun brauchen wir schließlich noch unseren Datenlieferant. Hier bleibt alles beim alten. Die Daten holen wir uns in ein Recordset. Beachten Sie allerdings bei rsXML.Save  die Daten in XML-Format zu erhalten. (1 ' adPersistXML). Noch was...vergessen sie bitte nicht in ASP-Projekten immer den Verweis auf die msxml.dll zu setzten.
 

empfang.asp

<%
dim cnn
dim rsXML
Connection = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Northwind;Data Source=SQLSERVER"
strSQL =  "Select * from Customers"


set rs = server.CreateObject("ADODB.Recordset")

if Request.QueryString("getRecordset") = "YES" then
 rsXML.ActiveConnection = Connection
 rsXML.CursorLocation = 3 'Client Side
 rsXML.CursorType = 3 'Static Recordset
 rsXML.LockType = 4 'Batch Optimistic
 rsXML.Open sql
 rsXML.Save response, 1 ' adPersistXML
 Response.End
else
 'Hier irgendwas schlaues einbauen
 
end if

%>

Viel Spaß!


Erfasst am: 17.07.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=488
© Copyright 2003 ppedv AG - http://www.ppedv.de