Xavier ist eine kleine XML-Bibliothek, objektorientierte und plattformübergreifende Bibliothek, die die Arbeit mit XML-Dateien und Streams mit XPath vereinfacht.
Achtung: Wir sind immer noch in einer sehr frühen Alpha -Version, die API kann und wird sich häufig ändern. Bitte verwenden Sie es auf eigenes Risiko, bis wir Version 1.0 veröffentlichen.
Diese API wird in freiem Pascal und Lazarus geschrieben. Es ist jedoch auch mit Delphi kompatibel.
Die meisten XML -Bibliotheken sind sehr komplex. Jede Klasse hat so viele Methoden, die schwer zu verwenden und zu verstehen könnten. Diese Implementierungen sind auch sehr prozedural.
Das Hauptziel ist es, den gemeinsamen Verfahrenscode, der so viele Bedingungen und Variablen aufweisen könnte, durch einen deklarativen und objektorientierten Code zu ersetzen, um einfacher mit XML zu arbeiten.
Der Code folgt einschränkende Regeln für Benennung und Stil als Präfixe und Suffixe, um den Programmierern zu helfen, die richtige Klasse oder Methode zu finden, um den Job schnell zu erledigen.
Klonen Sie das Repository in einem Verzeichnis in Ihrem Computer.
Innen verwendet dieses Projekt die integrierte XML-Bibliothek für jeden Compiler.
Außerdem verwenden wir andere Bibliotheken:
Es wurde mit diesen Versionen getestet:
Auf Lazarus installieren:
JamesLib.lpk und mormot_base.lpk verfügbar haben - siehe Abhängigkeiten/pkg/XavierLib.lpkDie IDE wird sich über das Xavierlib -Paket in jedem Projekt bewusst sein.
In Anbetracht <xavier> als den Weg, auf dem Sie die Quellen gespeichert haben, muss Ihr Projekt folgende Pfade enthalten:
In Anbetracht <xavier> als den Weg, auf dem Sie die Quellen gespeichert haben, müssen Sie diese Pfade in Ihr Projekt aufnehmen:
<xavier>src;<xavier>srcdelphi Sie können einige Beispiele finden, die Xavier in seiner eigenen Quelle verwenden können. Schauen Sie sich einfach in Xavier*Tests ein.
Darüber hinaus finden Sie unten die Grundlagen zum Starten.
Nehmen Sie dieses XML für alle folgenden Beispiele unten:
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< root >
< foo a1 = " f1 " a2 = " f2 " >
< value >foo</ value >
</ foo >
< bar a1 = " b1 " a2 = " b2 " >
< value >bar</ value >
</ bar >
</ root > Wenn Sie den value unter dem Notzoden des foo -Knotens finden möchten, tun Sie Folgendes:
var
pack: IXMLPack;
n: IXMLNode;
begin
pack := TXMLPack.Create(
TDataFile.Create( ' file.xml ' ).Ref.Stream
);
n := pack.Node( ' /root/foo/value ' );
ShowMessage(n.Text); // "foo"
end . Tatsächlich brauchen wir keine pack oder n . Rufen Sie einfach direkt an:
begin
ShowMessage(
TXMLPack.Create(
TDataFile.Create( ' file.xml ' ).Ref.Stream
)
.Ref
.Node( ' /root/foo/value ' )
.Text
); // "foo"
end .Sie können einen Knoten leicht hinzufügen:
// add a new node: name="item" value="a"
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Add( ' item ' )
.Text( ' a ' )
end ;Sie können zählen, wie viele Kinder ein Knoten tun:
// How many childs
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Childs
.Count
end ;Sie können jedes Attribut namens finden, das dies tut:
// Find by name "id"
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Attrs
.Item( ' id ' )
end ;Das Hinzufügen eines Attributs ist auch ganz einfach:
// Add an attribute: name="foo" value="bar"
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Attrs
.Add( ' foo ' , ' bar ' )
end ;Dieses Projekt wird unter MIT -Lizenz veröffentlicht. Siehe Lizenz.