Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   XML ohne Declaration (https://www.delphipraxis.net/207390-xml-ohne-declaration.html)

bcvs 19. Mär 2021 14:43

XML ohne Declaration
 
Hallo zusammen,

Normalerweise steht in eine XML-Datei in der ersten Zeile ja die Declaration.
<?xml version="1.0" encoding="utf-8"?>

Bei mir aber nicht.

Ich mache folgendes:

Delphi-Quellcode:
  dummyComp:=TComponent.Create(nil);
  fXMLDoc:=TXMLDocument.Create(dummyComp);
  fXMLDoc.Active:=true;
  fXMLDoc.Version := '1.0';
  fXMLDoc.Encoding := 'UTF-8';

  // jede Menge Knoten erzeugen

  fXMLDoc.SaveToFile(FileName);
Das XML wird geschreiben , aber ohne die erste Zeile mit
<?xml version="1.0" encoding="utf-8"?>
Was fehlt da?

Seltsamerweise schreibe ich an einer ganz anderen Stelle auch XMLs, und die haben diese erste Zeile. Ich finde aber nichts, was ich da anders mache.

Klaus01 19. Mär 2021 16:04

AW: XML ohne Declaration
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  xmlDoc: IXmlDocument;
begin
  coInitialize(nil);
  xmlDoc := newXmlDocument;
  xmlDoc.Active := true;
  xmlDoc.Encoding := 'UTF-16';
  memo1.Lines.Text := xmlDoc.XML.Text;
  coUnInitialize;
end;
im Memo steht dann: <?xml version="1.0" encoding="UTF-16"?>

Grüße
Klaus

bcvs 22. Mär 2021 07:38

AW: XML ohne Declaration
 
Jetzt habe ich meinen Fehler gefunden:

Da stand noch ein
Delphi-Quellcode:
fXMLDoc.ChildNodes.Clear;

Dass dadurch die Version und das Encoding auch gelöscht werden, war mir nicht bewusst.

Das Clear benutze ich, weil ich mit dem selben XMLDoc nacheinander mehrere verschiedene XML-Dateien erzeugen wollte.
Jetzt muss ich halt nach dem clear nochmal
Delphi-Quellcode:
  fXMLDoc.Version := '1.0';
  fXMLDoc.Encoding := 'UTF-8';
machen, oder das XMLDoc jedesmal neu erzeugen und freigeben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.

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