XML mit ASP auslesen
steve
- xml
Guten Tag,
ich will eine Webseite aufrufen, die mir ein XML-codiertes Ergebnis zurückliefert.
Weiterhin möchte ich dieses dann verarbeiten, also verschiedene Daten daraus abspeichern.
Ich habe folgendes probiert, hänge dann aber bei der Weiterverarbeitung (in url steht die Adresse der aufzurufenden Webseite):
Set objHTTP = Server.CreateObject("XStandard.HTTP")
objHTTP.Get url
Jetzt habe ich zwar die Daten, aber WO? Also wie greife ich jetzt darauf zu und kann die weiterverarbeiten?
Oder sollte ich ein anderes Objekt als "XStandard.HTTP" verwenden, welches evtl. mehr Funktionalität zur Verfügung stellt?
Vielen Dank
Steve
Nachtrag: ich habe sowas schon mal gemact mit dem "XStandard.HTTP", da habe ich aber das Ergebnis von "objHTTP.Get url" mittels "objHTTP.SaveResponseToFile" erst in eine Datei geschrieben, diese dann per "Server.CreateObject("Microsoft.XMLDOM")" und "XMLDoc.load" geöffnet und dann verarbeitet.
Das Zwischenspeichern muss doch aber auch zu umgehen sein, oder?
Vielen Dank
Steven
Hello,
na ja, googleln und etwas in der API wühlen ist meistens mal eine gute Idee, dann findest du z.B. dieses Beispiel.
MfG
Rouven
na ja, googleln und etwas in der API wühlen ist meistens mal eine gute Idee, dann findest du z.B. dieses Beispiel.
Hm, danke fuer die Info.
Hab es mir mal angeschaut, bekomme es einfach nicht hin.
Ein Beschreibung der API find ich nicht.
Ich kann zwar das ausfuehren, aber bei der Weiterverarbeitung treten Fehler auf. Wie kann ich denn feststellen, was in dem geholten Objekt steht?
Z.B. gibt mir "response.write objHTTP.ResponseAsXML" etwas aus, das sieht aber nicht allzu XML-formatiert mehr aus :-(
Vielen Dank
Steve
Hello,
Ich kann zwar das ausfuehren, aber bei der Weiterverarbeitung treten Fehler auf. Wie kann ich denn feststellen, was in dem geholten Objekt steht?
Z.B. gibt mir "response.write objHTTP.ResponseAsXML" etwas aus, das sieht aber nicht allzu XML-formatiert mehr aus :-(
sondern?
Da ich nichts vergleichbares am Laufen habe müsstest du schon etwas genauer beschreiben, was damit nicht in Ordnung ist. U.U. liegt es daran, dass die Webseite so ungültig ist, dass der XML-Writer nichts retten kann?!
MfG
Rouven
Da ich nichts vergleichbares am Laufen habe müsstest du schon etwas genauer beschreiben, was damit nicht in Ordnung ist. U.U. liegt es daran, dass die Webseite so ungültig ist, dass der XML-Writer nichts retten kann?!
Also ich hab es jetzt soweit:
set objHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.open "GET", URL, false
objHTTP.send
GetURL = objHTTP.responseText
Wenn ich mir GetURL ausgeben lasse, kommt da jetzt auch etwas zurueck. Auch mit den XML-Markierungen.
Ich gehe jetzt einmal davon aus, dass das Holen der Webseite geklappt hat. Jetzt muss ich das Geholte weiterverarbeiten. Das versuche ich hiermit:
Set XMLDoc = Server.CreateObject("Microsoft.XMLDOM")
XMLDoc.async = False
XMLDoc.load(GetURL)
Dim rootNode, item
Set rootNode = XMLDoc.documentElement
rekurs(rootNode)
Function rekurs(knoten)
For Each author in knoten.childNodes
...
Hier tritt dann ein Fehler auf.
"Object required: 'knoten'"
Wegen dem Fehler denke ich, dass die Anweisung "Set rootNode = XMLDoc.documentElement" nicht geklappt hat bzw. dass rootNode leer ist.
Weiterhin habe ich das Problem, das XML-Verarbeitung recht neu für mich ist, ich somit nicht weiß, wonach ich bei Problemen suchen muß. Oder wie ich mir z.B. Variablenbelegungen ausgeben kann.
Ich selbst dachte immer, dass die XML-Verarbeitung recht einfach und fortgeschritten ist, da XML ja eines der wichtigsten Datenformate der letzten Jahren ist. Wahrscheinlich habe ich ein großes Verständnisproblem, da mir die Verarbeitung der Daten in verschiedenen Beispielen recht kompliziert aussieht (Rekursivität ...). Oder gibt es eine Möglichkeit auf die Daten, wie auf ein Objekt zuzugreifen? Also z.B. ich bekomme die Anzahl der zurueckgelieferten Elemente und kann dann per author[x] auf die Werte zugreifen?
Vielen Dank
Steve