Home » Tutorials » Third-Party-Komponenten » OpenXML XDOM 4.1

OpenXML XDOM 4.1

Formatieren & Speichern

Zum Schluss wollen wir die XML-Datei ausgeben.
Dazu kommt ein TDomToXmlParser auf die Form, dessen DOMImpl wir auf unseren DomImplementation1 verlinken.
Die XML-Datei geben wir jetzt in das Memo aus:

var s: String;
  DomToXmlParser1.WriteToString(FDoc, 'UTF-8', s);
  Memo1.Text := s;

Der Umweg über s ist nötig.
XDOM gibt die XML-Datei ohne Formatierung, als einzeiligen String aus.
Um die XML-Datei formatiert auszugeben, kann man Zeilenumbrüche und Leerstellen einfügen:

 FNodeText := TDomText.Create(FDoc);
  FNodeText.NodeValue := #10#32#32;
  FDoc.FindFirstChildElement.AppendChild(FNodeText);

Dies macht einen Zeilenumbruch #10 und zwei Leerstellen #32.
Das Ergebnis könnte so aussehen:

<?xml version="1.0" encoding="UTF-8"?>
<RootNode Attr1="Wert1">
  <NodeGroup>
    <Node1>Text1</Node1>
    <Node2 Attr2="Wert2" Attr3="Wert3">Text2</Node2>
  </NodeGroup>
  <!--Kommentar-->
</RootNode>

So speichert man die XML in eine Datei:

var Stream: TFileStream;
  Stream := TFileStream.Create('test.xml', fmCreate);
  DomToXmlParser1.WriteToStream(FDoc, 'UTF-8', Stream);
  Stream.Free;