Einzelnen Beitrag anzeigen

Roachford
(Gast)

n/a Beiträge
 
#5

Re: [XMLLib] - Strucktur erstellen

  Alt 23. Sep 2008, 17: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