Xavier adalah perpustakaan XML kecil, berorientasi objek, dan lintas platform yang menyederhanakan pekerjaan dengan file XML dan stream menggunakan XPath.
Perhatian: Kami masih dalam versi alfa yang sangat awal, API mungkin dan akan sering berubah. Tolong, gunakan dengan risiko Anda sendiri, sampai kami merilis versi 1.0.
API ini ditulis dalam Pascal dan Lazarus gratis. Namun, ini juga kompatibel dengan Delphi.
Sebagian besar perpustakaan XML sangat kompleks. Setiap kelas memiliki begitu banyak metode yang mungkin sulit digunakan dan memahaminya. Implementasi ini juga sangat prosedural.
Tujuan utamanya adalah untuk menggantikan kode prosedural umum, yang dapat memiliki begitu banyak kondisi dan variabel, ke kode deklaratif dan berorientasi objek untuk bekerja lebih mudah dengan XML.
Kode ini mengikuti aturan terbatas tentang penamaan dan gaya, sebagai awalan dan sufiks, untuk membantu pemrogram menemukan kelas atau metode yang benar untuk melakukan pekerjaan dengan cepat.
Kloning repositori di beberapa direktori di komputer Anda.
Secara internal, proyek ini menggunakan pustaka XML bawaan untuk setiap kompiler.
Selain itu, kami menggunakan perpustakaan lain:
Telah diuji menggunakan versi ini:
Untuk menginstal di Lazarus :
JamesLib.lpk , dan mormot_base.lpk tersedia - lihat dependensi/pkg/XavierLib.lpkIDE akan mengetahui tentang paket Xavierlib untuk digunakan dalam proyek apa pun.
Mempertimbangkan <xavier> sebagai jalur di mana Anda telah menyimpan sumber, proyek Anda harus menyertakan jalur ini:
Mempertimbangkan <xavier> sebagai jalur di mana Anda telah menyimpan sumber, Anda harus memasukkan jalur ini dalam proyek Anda:
<xavier>src;<xavier>srcdelphi Anda dapat menemukan beberapa contoh untuk menggunakan Xavier di sumbernya sendiri. Lihat saja unit Xavier*Tests .
Selain itu, di bawah ini Anda dapat menemukan dasar -dasarnya untuk memulai.
Ambil XML ini untuk semua contoh di bawah ini:
<? 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 > Jika Anda ingin menemukan Node value Node dari foo Node, lakukan ini:
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 . Faktanya, kita tidak memerlukan pack variabel atau n . Panggil saja langsung:
begin
ShowMessage(
TXMLPack.Create(
TDataFile.Create( ' file.xml ' ).Ref.Stream
)
.Ref
.Node( ' /root/foo/value ' )
.Text
); // "foo"
end .Anda dapat menambahkan node dengan mudah melakukan ini:
// 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 ;Anda dapat menghitung berapa banyak anak yang memiliki simpul yang melakukan ini:
// How many childs
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Childs
.Count
end ;Anda dapat menemukan atribut apa pun dengan nama melakukan ini:
// Find by name "id"
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Attrs
.Item( ' id ' )
end ;Menambahkan atribut juga cukup mudah:
// Add an attribute: name="foo" value="bar"
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Attrs
.Add( ' foo ' , ' bar ' )
end ;Proyek ini dirilis di bawah lisensi MIT. Lihat lisensi.