![]() |
MS XML liest XML-File aus Internet nicht
Hi,
langsam verstehe ich MSXML nicht mehr. :gruebel: OmniXML kommt mit Internetfiles gar nicht zu Recht und MS XML sagt mir, dass die Daten noch nicht bereit ständen:
Delphi-Quellcode:
An der markierten Stelle sagt mir MS XML:
xmlDoc.load(IDS_URL);
xmlPosts := xmlDoc.selectNodes('/database/entry'); // hier kommt der Fehler len := xmlDatas.Length; if len > 20 then len := 20; for i:=0 to len-1 do begin // tu was... end; Fehlermeldung --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt dpX_ShoutViewer.exe ist eine Exception der Klasse EOleException aufgetreten. Meldung: 'Die für diesen Vorgang erforderlichen Daten sind noch nicht verfügbar'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- Die Datei wird aus dem Internet heruntergeladen. Woran kann das liegen? Normalerweise wartet MS XML doch, bis die Daten geladen sind, oder? :gruebel: Chris [edit]Btw: es geht hier nicht zwingend um die ShoutBox... ;) Ich schreibe gerade an einer Software für die Verwaltung von Kundendaten via XML und Internet. Zufälligerweise werde ich MSXML auch beim ShoutBox-Programm verwenden, deswegen liegt mir eine Lösung des Problems sehr am Herzen. :mrgreen:[/edit] |
Re: MS XML liest XML-File aus Internet nicht
Eigentlich würde ich dir zustimmen. Wenn ich die Shoutbox (oder eine andere XML-Datei) mit meinem JavaScript lade, dann klappt´s ja auch. Bzw. es geht ja auch mit dem kleinen Programm, das ich kurzzeitig mal im entsprechenden Thread vorgestellt habe. Das holte sich ja auch die Shoutbox-Daten von der DP und transformierte sie dann bloß für die Ausgabe im TWebBrowser.
Was hast du noch für Eigenschaften gesetzt?
Delphi-Quellcode:
usw.
xmldoc.async := false;
xmldoc.resolveExternals := false; |
Re: MS XML liest XML-File aus Internet nicht
Also bei mir funktioniert es auch ohne das Setzen irgendwelchen zusätzlichen Eigenschaften.
Mein Code (@Luckie: Aus dem Konstruktor einer Klasse, die sich in einer Extra-Unit befindet :twisted: ):
Delphi-Quellcode:
mfG
XMLDoc := CoDOMDocument40.Create();
XMLDoc.setProperty('NewParser', True); XMLDoc.load(FILENAME); if XMLDoc.parseError.errorCode = 0 then begin Nodes := XmlDoc.documentElement.childNodes; // ... end; // .. mirage228 |
Re: MS XML liest XML-File aus Internet nicht
Jetzt wird es etwas offtopic, aber ich sehe das gerade bei dir mirage. Wenn das wirklich Teil deines Codes ist, dann ist er nicht sehr "schön". Ich denke man sollte die Möglichkeiten nutzen die einen Delphi mit OOP bereitstellt und mit Klassen arbeiten. Desweiteren halte ich es für sinnvoll die GUi von der Funktionalität zu trennen.
Aber das sollte hier an dieser Stelle nicht weiter diskutiert werden. Ich wollte es nur mal hier anmerken, da ich es gerade gesehen habe. |
Re: MS XML liest XML-File aus Internet nicht
Zitat:
|
Re: MS XML liest XML-File aus Internet nicht
Hi,
keine einzige, sprich nur NewParser. :gruebel: Chris |
Re: MS XML liest XML-File aus Internet nicht
A) Verzichte mal drauf. IMHO brauchst du das eigentlich nicht. So ganz schlau werde ich aus der Erklärung im PSDK (PSDK öffnen, und Adresse "ms-help://MS.PSDK.1033/xmlsdk/htm/xml2nd_pro_v4_5pde.htm" kopieren) nämlich nicht.
B) Lagert diese XML-Datei (oder etwas ähnliches) auf deinem Server? Dann könnte ich ja mal den Zugriff versuchen. Wenn Ja, dann schick mir den URL am besten via PM, wenn du nicht möchtest, dass Jedermann auf deinen Server zugreift. ;) |
Re: MS XML liest XML-File aus Internet nicht
Hi,
versuchs mal mit der hiesigen ShoutBox. Ich habe gerade mit der Software richtig angefangen und habe das gleiche Problem. Allerdings scheint es mal zu funktionieren und mal nicht. Jetzt zeigt er keinen Fehler mehr an, dafür aber auch keinen Inhalt. :gruebel: Chris |
Re: MS XML liest XML-File aus Internet nicht
Soeben ausprobiert.
Delphi-Quellcode:
So geht´s. Ich bekomme nur eine Zugriffsverletzung, wenn ich auf
procedure TForm1.Button1Click(Sender: TObject);
var xmldoc : DomDocument40; nl : IXMLDOMNodeList; i : integer; begin xmldoc := CoDomDocument40.Create; if(xmldoc <> nil) then try xmldoc.async := false; xmldoc.validateOnParse := false; xmldoc.resolveExternals := false; if(xmldoc.load('http://www.delphipraxis.net/rdf.php?shoutbox=1')) then begin nl := xmldoc.selectNodes('/rdf/shout'); ShowMessage(Format('%d <shout>-Knoten gefunden',[nl.length])); if(nl.length > 0) then begin i := Random(nl.length); // "Randomize" nicht vergessen ShowMessage(nl.item[i].xml); end; end; finally xmldoc := nil; end; end;
Delphi-Quellcode:
verzichte. Ansonsten sah ich als zufällige Meldung gerade die von himitsu um 11:35:
xmldoc.async := false;
Zitat:
|
Re: MS XML liest XML-File aus Internet nicht
Hi,
jepp. So funktionierts. Danke, Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz