AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi [XMLLib] - Strucktur erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

[XMLLib] - Strucktur erstellen

Ein Thema von remo.mueller · begonnen am 23. Sep 2008 · letzter Beitrag vom 24. Sep 2008
 
Roachford
(Gast)

n/a Beiträge
 
#5

Re: [XMLLib] - Strucktur erstellen

  Alt 23. Sep 2008, 16:36
Zitat von remo.mueller:
Übrigens wie kann ich in dieser Struktur noch ein oder mehrere Einträge vom Typ:
<rule id="1" points="1,0" command="+Message-ID" regex="\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\@" info="Dotted IP in Message-ID" result=""/> hinzufügen?
Ich habe ebend nochmal ein wenig rumprobiert und du kannst einfach Knoten erstellen und brauchst diese nicht mehr anzufügen, das macht die Lib selbst abhängig vom übergebenen Parent-Knoten. Wenn der Parent nil ist, also der Hauptknoten, den musst du als einziges der Root Eigenschaft der Lib zuweisen.

Also somit wäre es so möglich:
Delphi-Quellcode:
function CreateXML(const AFilename: string): boolean;
var
  lLib: TXMLLib;
  lNode: TXMLNode;
begin
  lLib := TXMLLib.Create;
  try
    lNode := TXMLNode.Create;
    lNode.Name := 'filter';

      // Root Knoten muss zugewiesen werden
    lLib.Root := lNode;


      // für deine weiteren Einträge dann:
    lNode := TXMLNode.Create(lLib.Root);
    lNode.Name := 'rule';
    lNode.Attributes.SimpleAdd('id', '1');
    lNode.Attributes.SimpleAdd('points', '1,0');
    lNode.Attributes.SimpleAdd('command', '+Message-ID');
    lNode.Attributes.SimpleAdd('regex', '\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\@');
    lNode.Attributes.SimpleAdd('info', 'Dotted IP in Message-ID');
    lNode.Attributes.SimpleAdd('result', '');

      // noch einer ...
    lNode := TXMLNode.Create(lLib.Root);
    lNode.Name := 'rule';
    lNode.Attributes.SimpleAdd('id', '1');
    lNode.Attributes.SimpleAdd('points', '1,0');
    lNode.Attributes.SimpleAdd('command', '+Message-ID');
    lNode.Attributes.SimpleAdd('regex', '\.\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\@');
    lNode.Attributes.SimpleAdd('info', 'Dotted IP in Message-ID');
    lNode.Attributes.SimpleAdd('result', '');

      // etc...

    result := lLib.SaveToFile(AFilename);
  finally
    lLib.Free;
  end;
end;
Zitat von Mackhack:
Das heisst jetzt aber hoffentlich nicht dass die Lib schlechter ist als andere nur weil Muetze1 da nichts mehr machen will. Wenn du mal auf seinem Blog liest warum er nicht weitermacht sollte das doch zufriedenstellend sein!
Ich habe nie behauptet das sie schlecht(er) ist, ich wollte ihn nur darauf hinweisen. Wenn er ein Projekt erstellt will man auch die Gewissheit in einiger Zeit das Projekt erstellen zu können. Und es ist nicht bei jedem Projekt gut auf etwas ohne Zukunft zu setzen. Vielleicht braucht er in einiger Zeit mal ein Feature was er jetzt noch vermisst und spätestens dann muss er wahrscheinlich einen Großteil seines Codes anpassen wegen Wechsel der XML Zugriffskomponenten.

Und ich habe mich in die Lib recht schnell reingefunden. Es gibt so manche Dinge die nicht stimmig sind (Nodes.Nodes[], etc. anstatt besser Nodes.Items[], Anscheinend keine UTF-16 Support), aber trotz alledem kam ich schnell damit zu Recht ohne gross was zu lesen, etc. Von daher wollte ich hier nichts schlecht machen, weil sonst hätte ich die Frage einfach stehen gelassen oder hätte gleich was mit OmniXML oder MSXML gepostet...

Also mal ganz ruhig...
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz