Verständnisfrage zu XMLDocument und LoadXMLDocument



  • Hallo,

    ich hoffe mir kann das jemand erklären. Zum Öffnen einer XML-Datei auf einem Netzwerk-Controller verwende ich LoadXMLDocument(L"http://blabla/Doc.xml"); In den meisten Netzwerkumgebungen funktioniert das auch, aber ab und zu komme ich nicht an die Datei heran.

    Welchen port benutzt LoadXMLDocument bzw. kann ich den Port ändern ? Ich denke mein Problem könnten geschlossene Ports sein, ich weis aber nicht wie die Komponente den Zugriff auf die Datei über http meistert. Ist das evtl. abhängig von den IE Einstellungen bzw. ob ein Proxy-Server verwendet wird ?

    Die Beschreibung zu LoadXMLDocument im C++Builder 2007 finde ich sehr dürftig. Gibt es da irgendwo was besseres zum Nachlesen ?



  • Ich glaube nicht, daß 'LoadXMLDocument' für Netzwerke mit Parametern konzeptiert ist. Es lädt einfach nur ne Datei.
    Da mußt Du erst die Datei andersweitig holen und danach dem XMLDocument übergeben.

    Lesen von XML-Dokumenten mithilfe der XmlDocument-Klasse
    Bei der XmlDocument-Klasse handelt es sich um eine editierbare speicherresidente Darstellung eines XML-Dokuments, die das DOM Level 1 Core und das DOM Level 2 Core des W3C implementiert. Instanzen der XmlDocument-Klasse werden mithilfe eines ihrer drei Konstruktoren erstellt. Sie können ein neues, leeres XmlDocument-Objekt erstellen, indem Sie den Konstruktor der XmlDocument-Klasse ohne Parameter aufrufen. Verwenden Sie nach dem Aufrufen des Konstruktors die Load-Methode, um XML-Daten aus einem der Objekte Stream, TextReader oder XmlReader sowie aus dem string-Pfad zu einer XML-Datei in das neue XmlDocument-Objekt zu laden.



  • Hi OldMan00,

    erstmal Danke für Deine Hilfe.

    OldMan00 schrieb:

    Ich glaube nicht, daß 'LoadXMLDocument' für Netzwerke mit Parametern konzeptiert ist. Es lädt einfach nur ne Datei.
    Da mußt Du erst die Datei andersweitig holen und danach dem XMLDocument übergeben.

    Ja ok, aber weist Du über welchen Port der Zugriff stattfindet ? Kannst Du mir einen Tip geben wie ich die Datei mir sonst besorgen kann bzw. welche Komponente von C++Builder ich dafür nehmen kann um über http eine Datei auf meinen Rechner zu kopieren ?



  • Ich bin zwar nicht der Indy Experte, hab da selbst noch Fragen dazu, aber ich würde Indy TIdHTTP benutzen. Zu finden in Indy Clients.



  • Danke für den Tip, werde ich mir mal anschauen. Meine Erfahrungen mit Web-Zugriffen sind ziemlich dürftig, deswegen meine Frage nach der Methode.



  • Der Standardport für HTTP ist 80, wenn du einen Proxy benutzt kann das allerdings auch jeder andere (>1024) sein. Such mal das Tool TCPView von (ehemals) SysInternals, das listet dir auf, welcher Prozess auf welchem Port aktiv ist.

    Gruß,
    Doc



  • Danke für den Tip Doc !


Anmelden zum Antworten