![]() |
[XMLLib] - Strucktur erstellen
Guten Tag,
ich möchte folgende Struktur in XML erzeugen und speichern. Ich verwende "XMLLib" von Muetze1.
Delphi-Quellcode:
Irgendwie habe ich einen kleinen Denkknoten und komme nicht auf die Lösung. :gruebel:
<filter>
<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=""/> </filter> Vielleicht könnte man mir mit einen Beispielcode helfen. Besten Dank im Vorraus. :zwinker: Remo |
Re: [XMLLib] - Strucktur erstellen
Na, die habe ich doch noch vom letzten Problem rumliegen. Du weisst schon, dass der Author diese nicht mehr weiter pflegt?
Delphi-Quellcode:
function CreateXML(const AFilename: string): boolean;
var lLib: TXMLLib; lNode: TXMLNode; begin lLib := TXMLLib.Create; try if lLib.CreatePathAndNode('filter/rule', lNode) then begin 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', ''); end; result := lLib.SaveToFile(AFilename); finally lLib.Free; end; end; |
Re: [XMLLib] - Strucktur erstellen
Zitat:
Ich habe schon überlegt auf "Chilkat XML" umzusteigen - ein ActiveX-Element. Aber ich bin selbst kein Fan von ActiveX. Ü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? :?: Mit besten Grüßen Remo |
Re: [XMLLib] - Strucktur erstellen
Zitat:
|
Re: [XMLLib] - Strucktur erstellen
Zitat:
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:
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... |
Re: [XMLLib] - Strucktur erstellen
Also besten Dank für den Quellcode. :thumb:
Der XML-Test hat mir gezeigt, daß eine Datenbank schneller ist. Und bei meinen Spamfilter merkt man den Unterschied. Mit besten Grüßen Remo |
Re: [XMLLib] - Strucktur erstellen
Zitat:
|
Re: [XMLLib] - Strucktur erstellen
Zitat:
bescheidene Frage..was soll mir XML fuer Vorteile bringen? :gruebel: ..ich habe geringe Datenmengen.."Memtable"..habe groessere Datenmengen..strukturierte SQL DB..was brauch ich XML? |
Re: [XMLLib] - Strucktur erstellen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 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