Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Einrückungen in einer generierten XML-Datei (https://www.delphipraxis.net/15838-einrueckungen-einer-generierten-xml-datei.html)

ak1 4. Feb 2004 20:37


Einrückungen in einer generierten XML-Datei
 
Hallo Leute ich habe eine XML-Datei mit folgender procedure generiert:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  XMLDoc: TXMLDocument;
begin

  XMLDoc := TXMLDocument.Create(self);
  XMLDoc.Active:=True;
  XMLDoc.Encoding:= 'ISO-8859-1';
  XMLDoc.AddChild('menu');

  XMLDoc.DocumentElement.AddChild('menu_1');
  XMLDoc.DocumentElement.ChildNodes.FindNode('menu_1').Text:='menü_1';

  XMLDoc.DocumentElement.ChildNodes.FindNode('menu_1').AddChild('menu_1_1');

  XMLDoc.DocumentElement.ChildNodes.FindNode('menu_1').ChildNodes.
  FindNode('menu_1_1').Text:='menü_1_1';
  XMLDoc.DocumentElement.AddChild('menu_2');

  XMLDoc.SaveToFile('C:\testxml.xml');

end;
Jetzt sieht der XML-code aber etwas unübersichtlich aus:

Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<menu><menu_1>menü_1<menu_1_1>menü_1_1</menu_1_1></menu_1><menu_2/></menu>
Wie kann ich die Einrückungen ordentlicher gestalten?

Gruß AK

Bernhard Geyer 5. Feb 2004 07:29

Re: Einrückungen in einer generierten XML-Datei
 
Einrückungen bzw. Zeilenumbrüche sind in XML nicht nötig bzw. stellen zusätzeliche Infos dar, welche du ja nicht in's XML eingefügt hast.

Wenn Du untere XML-Datei dem IE übergibtst bekommst Du eine eingerückte Anzeige. Aber diese direkt in die XML-Datei zu codieren ist unnötige.

Zusätzlich könntest Du z.B. einen XML-Editor (statt z.B. Notepad oder den Delphi-Editor) nehmen welcher beim Einlesen entsprechende Einrückungen vornimmt.

Unter OpenXML bekommst Du auch einen alternativen XML-Parser welcher 100% in Delphi geschrieben ist (und auch unter D7 als alternativer Parser zur verfügung steht).

ak1 5. Feb 2004 09:01

Re: Einrückungen in einer generierten XML-Datei
 
@Bernhard Geyer,

schon klar aber ich hätte es eben lieber wenn ich auch in der normalen Textansicht eine ordentliche
Einrückung habe.
Die OpenXML-Komponenten sind vielleicht gut aber leider gibt es dafür keine aktuellen praktischen Beispiele die ich gefunden habe, so habe ich es bis jetzt nur geschfafft, eine XML-Datei einzulesen und auszuwerten. Aber wie ich mit OpenXML eine Datei erstellen kann, ist mir dank der fehlenden "savetofile" Funktion bis jetzt nicht klar. Wenn das mit den "normalen" XML-Komponenten ganz einfach geht und die Leute bei Open XML es nicht für nötig halten aktuelle Beispiele zu anzubieten, dann brauchen die sich nicht wundern, dass diese Komponenten so selten verwendet werden.

Weisst du wie ich in OpenXML eine XML-Datei erstelllen kann und Knoten mit Kindknoten hinzufüge?

Gruß AK

MathiasSimmack 5. Feb 2004 09:24

Re: Einrückungen in einer generierten XML-Datei
 
http://www.delphipraxis.com/images/common/icon_df.gif klick

@Bernhard: (s. Link ins DF) Dann scheint es für den MS-XML-Parser keine Option zu geben, mit der man den XML-Code einrücken kann?

lkz633 5. Feb 2004 09:37

Re: Einrückungen in einer generierten XML-Datei
 
Hi,

doch, diese Option gibt es :-) :

Code:
xmldocument.Options:= [doNodeAutoIndent];
Damit erhält man wunderschöne Einrückungen.

Gruss lkz633

ak1 5. Feb 2004 10:29

Re: Einrückungen in einer generierten XML-Datei
 
Zitat:

Zitat von lkz633
Hi,

doch, diese Option gibt es :-) :

Code:
xmldocument.Options:= [doNodeAutoIndent];
Damit erhält man wunderschöne Einrückungen.

Gruss lkz633

jupp klappt sehr gut... :-)

Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 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