Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   XML Zeilenumbruch (https://www.delphipraxis.net/154154-xml-zeilenumbruch.html)

GericasS 30. Aug 2010 14:41

XML Zeilenumbruch
 
Folgender Code :

Delphi-Quellcode:

  foDoc: IXMLDOMDocument;
  foFind: IXMLDOMNode;
  foNew: IXMLDOMNode;
  foAttr: IXMLDOMNode;
  FoFiles: TStringList;

begin

    GetFilesInDirectory(fsSearchDir, fsFileMask, FoFiles, fiSubfolder = 1);

    try
      CoInitialize(Nil);
      foDoc := CoDOMDocument.Create;
      foDoc.async := False;
      if foDoc.load(FoFiles.Strings[0]) then
      begin
        foFind := foDoc.documentElement.selectSingleNode(fsFindNode);
        if Assigned(foFind) then
        begin
          Writeln(foFind.text);
          fsSnippet1 := copy(foFind.text, fiExtract11, fiExtract12);
          fsSnippet2 := copy(foFind.text, fiExtract21, fiExtract22);
          fsTag := fsSnippet1 + fsDelimiter + fsSnippet2;
          foFind := foDoc.documentElement.selectSingleNode(fsSaveNode);
          if Assigned(foFind) then
          begin
            foNew := foDoc.createNode(1, fsNodeName, '');
            foNew.text := fsTag;
            foAttr := foDoc.createNode(2, 'name', '');
            foAttr.text := fsNodeAttribut;
            foNew.attributes.setNamedItem(foAttr);
            foFind.appendChild(foNew);
            foDoc.save(FoFiles.Strings[0]);
          end;
        end;
      end
      else
      begin
        Writeln('fehler');
        Readln;
      end;
      // foDoc._Release;
      // CoUninitialize;
    except
      on E: Exception do
      begin
        Writeln(E.ClassName, ': ', E.Message);
      end;
    end;
    FreeandNil(Foini);
    FoFiles.Free;
end.
Wie bekomme ich hinter dem neue erstellen Knoten einen Zeilenumbruch realisiert ?:wink:

Mfg,

GericasS

himitsu 30. Aug 2010 14:48

AW: XML Zeilenumbruch
 
k.A. wie man hier die Optionen setzen kann,
aber beim IXMLDocument, aus der Unit XMLIntf, kann man über .Options die Option doNodeAutoIndent setzen.

Und falls du dann doch ein IXMLDOMDocument benötigst, dann kommst du über .DOMDocument da ran.


PS: Man ruft ._Release nicht einfach so auf :!:
stattdessen wäre ein :=nil; besser geeignet, denn so wie du es damit machen würdes, wird diese Interfacereferenz einmal zuviel freigegeben.


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