Einzelnen Beitrag anzeigen

Benutzerbild von Ajintaro
Ajintaro

Registriert seit: 20. Okt 2004
Ort: Sankt Augustin
138 Beiträge
 
Delphi XE6 Starter
 
#1

XML vom Browser speichern

  Alt 16. Sep 2014, 15:36
Hallo DP !

Dieses Thema macht mich ganz irre !
Es gibt unzählige Threads im Netz über dieses simple Problem, aber nichts davon funktioniert annähernd. Ich möchte nach dem DocumentComplete eines Browsers die angezeigte XML Datei speichern.

Delphi-Quellcode:
procedure TFmain.WebBrowser1DocumentComplete(ASender: TObject;
  const pDisp: IDispatch; const URL: OleVariant);
var
  HTML: IHtmlDocument2;
  xml: WideString;
  doc: OleVariant;
  XMLText: String;

begin
  HTML := webbrowser1.Document as IHTMLDocument2;
  XMLText := HTML.body.innerText;
  path := Extractfilepath(application.ExeName)+path_xml +'\';
  doc := WebBrowser1.Document;
  xml := doc.XMLDocument.XML;
end;
Ich habe versucht, mit den oben aufgeführten Variablen zum Ziel zu kommen (gültige XML-Datei zu speichern). Probiert habe ich es mit

a)

Delphi-Quellcode:
{++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//WIDESTRING SAVE
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}

procedure SaveWideStringToFile(var ws: widestring; filename: string);
begin
  with TFileStream.Create(FILENAME, fmCreate or fmShareDenyWrite) do
  try
    Write(WS, length(ws));
  finally
    Free;
  end;
end;
b)

Delphi-Quellcode:
//WB_SaveHTMLCode SAVE
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++}
function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
  ps: IPersistStreamInit;
  fs: TFileStream;
  sa: IStream;
begin
  ps := WebBrowser.Document as IPersistStreamInit;
  fs := TFileStream.Create(FileName, fmCreate);
  try
    sa := TStreamAdapter.Create(fs, soReference) as IStream;
    Result := Succeeded(ps.Save(sa, True));
  finally
    fs.Free;
  end;
end;
Widestring speichern sowie mit dem Stream speichern liefern leider keine gültige XML Datei.Dieser Herr hier hatte wohl das selbe Problem.

Ist denn die Problematik so kompliziert heutzutage ?
Jaimy
DAoC 2.0 -> Camelot Unchained !
  Mit Zitat antworten Zitat