Http-Zugriff auf xml-Datei in VB funktioniert nicht
Gab
- programmiertechnik
0 Frank (no reg)0 hkl
Hallo,
ich versuche in VB auf eine externe xml-Datei zuzugreifen.
Der Code lautet:
Dim oXML As MSXML2.DOMDocument
Dim Pfad, pfad2, nodeliste
oXML = New MSXML2.DOMDocument
Pfad = "http://...."
pfad2 = "D:\eintrag.xml"
' Struktur des Dokumentes beim Laden prüfen
oXML.validateOnParse = True
oXML.setProperty("SelectionLanguage", "XPath")
oXML.load(Pfad)
Der Zugriff so funktioniert nicht. Als Fehler wird angegeben, dass die Instanz oXML leer ist. "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
Lade ich die Datei aber lokal, geht alles.
Woran kann's liegen?
Danke
Gab
Hi,
evt. ist "http://..." kein gültiger Pfad zum laden eines MSXML2.DomDocument?
Nicht mal 1 Minute Suche mit Google habe ich gebraucht um das zu finden:
// für XMLHTTP abholen des Streams
var XMLHTTP = new ActiveXObject("MSXML2.XMLHTTP");
// open mit false = für syncrones holen der Daten (Async = false)
XMLHTTP.open("Get","http://localhost/developer2/XML/XMLStream.asp?FileName=" + sFileName,false);
XMLHTTP.send();
var XMLDoc = new ActiveXObject("MSXML2.DOMDocument");
XMLDoc.loadXML(XMLHTTP.responseText);
// Daten-Stream knoten referenziieren
var Node = XMLDoc.documentElement.selectSingleNode("/Root/Data");
Statt ActiveXObject solltest du vielleicht (Server.)CreateObject("MSXML2.XMLHTTP") verwenden. Und die Syntax auf VB(S) anpassen.
Hilft es?
Frank
Hallo !
Vielleicht hilft ja das:
'''''''''''''''''''''''''
'=> oXML.async = False <=
'''''''''''''''''''''''''
( gefunden bei Microsoft:
http://www.microsoft.com/germany/msdn/library/data/xml/AnfaengerhandbuchFuerXMLDOM.mspx#ESE
via Google (msxml2 load url):
http://www.google.com/search?q=msxml2+load+url&ie=UTF8
)
Aus der MSDN-Seite geht imho hervor, das die load() Methode offenbar URLs verarbeiten kann ( zumindest offenbar seit 2004er Versionen )
Vielleicht ist das wirklich ein Synchronisationsproblem - laden via Netz und Webserver dauert halt laenger.
Mit async=false kann man die Nebenlaeufigkeit hier
wohl abschalten
Wenn das nicht helfen sollte, bitte MSXML Version und
ggf. COM Threading Modell ( Apartment/Free )posten.
Wo man das fuer ASP / VB Script (?) nachschaut weiss
ich leider nicht auswendig.
( Bin hier in MS-freier Zone; kenne die COM-Komponente fast nur unter C++ )
Btw. guter Parser, oder ?
Gruss
Holger
.