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...