Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi MS XML liest XML-File aus Internet nicht (https://www.delphipraxis.net/20773-ms-xml-liest-xml-file-aus-internet-nicht.html)

CalganX 22. Apr 2004 21:13


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:
  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;
An der markierten Stelle sagt mir MS XML:
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]

MathiasSimmack 22. Apr 2004 21:38

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:
xmldoc.async := false;
xmldoc.resolveExternals := false;
usw.

mirage228 23. Apr 2004 05:43

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:
  XMLDoc := CoDOMDocument40.Create();
  XMLDoc.setProperty('NewParser', True);
  XMLDoc.load(FILENAME);
  if XMLDoc.parseError.errorCode = 0 then
  begin
    Nodes := XmlDoc.documentElement.childNodes;
    // ...
  end;
  // ..
mfG
mirage228

Luckie 23. Apr 2004 05:52

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.

MathiasSimmack 23. Apr 2004 07:24

Re: MS XML liest XML-File aus Internet nicht
 
Zitat:

Zitat von mirage228
Also bei mir funktioniert es auch ohne das Setzen irgendwelchen zusätzlichen Eigenschaften.

Genau deshalb habe ich ja gefragt. Evtl. hat Chakotay ein paar Sachen aktiviert, die den Zugriff auf die Datei verhindern.

CalganX 23. Apr 2004 12:56

Re: MS XML liest XML-File aus Internet nicht
 
Hi,
keine einzige, sprich nur NewParser. :gruebel:

Chris

MathiasSimmack 23. Apr 2004 13:25

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. ;)

CalganX 23. Apr 2004 13:32

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

MathiasSimmack 23. Apr 2004 13:52

Re: MS XML liest XML-File aus Internet nicht
 
Soeben ausprobiert.
Delphi-Quellcode:
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;
So geht´s. Ich bekomme nur eine Zugriffsverletzung, wenn ich auf
Delphi-Quellcode:
    xmldoc.async := false;
verzichte. Ansonsten sah ich als zufällige Meldung gerade die von himitsu um 11:35:
Zitat:

Du möchtest nicht wissen, ...

CalganX 23. Apr 2004 14:02

Re: MS XML liest XML-File aus Internet nicht
 
Hi,
jepp. So funktionierts.

Danke,
Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:16 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz