ซาเวียร์เป็นไลบรารี XML ขนาดเล็กที่มุ่งเน้นวัตถุและข้ามแพลตฟอร์มที่ทำให้การทำงานกับไฟล์และสตรีม XML ง่ายขึ้นโดยใช้ XPATH
ความสนใจ: เรายังคงอยู่ในรุ่นอัลฟ่ารุ่นแรก API อาจและจะเปลี่ยนแปลงบ่อยครั้ง กรุณาใช้ตามความเสี่ยงของคุณเองจนกว่าเราจะปล่อยเวอร์ชัน 1.0
API นี้กำลังเขียนใน Pascal และ Lazarus ฟรี อย่างไรก็ตามมันก็เข้ากันได้กับ Delphi
ห้องสมุด XML ส่วนใหญ่มีความซับซ้อนมาก แต่ละชั้นเรียนมีวิธีการมากมายที่อาจใช้งานยากและเข้าใจ การใช้งานเหล่านี้เป็นขั้นตอนเช่นกัน
เป้าหมายหลักคือการแทนที่รหัสขั้นตอนทั่วไปซึ่งอาจมีเงื่อนไขและตัวแปรจำนวนมากไปยังรหัสประกาศและเชิงวัตถุเพื่อทำงานได้ง่ายขึ้นด้วย XML
รหัสดังต่อไปนี้กฎข้อ จำกัด เกี่ยวกับการตั้งชื่อและสไตล์เป็นคำนำหน้าและคำต่อท้ายเพื่อช่วยโปรแกรมเมอร์ในการค้นหาคลาสหรือวิธีการที่ถูกต้องในการทำงานอย่างรวดเร็ว
โคลนที่เก็บในไดเรกทอรีบางส่วนในคอมพิวเตอร์ของคุณ
ภายในโครงการนี้ใช้ไลบรารี XML ในตัวสำหรับคอมไพเลอร์แต่ละตัว
นอกจากนั้นเรายังใช้ห้องสมุดอื่น ๆ :
มันได้รับการทดสอบโดยใช้เวอร์ชันเหล่านี้:
เพื่อติดตั้งบน Lazarus :
JamesLib.lpk และ mormot_base.lpk พร้อมใช้งาน - ดูการพึ่งพา/pkg/XavierLib.lpkIDE จะรับรู้เกี่ยวกับแพ็คเกจ Xavierlib ที่จะใช้ในโครงการใด ๆ
เมื่อพิจารณาถึง <xavier> เป็นเส้นทางที่คุณได้บันทึกแหล่งที่มาโครงการของคุณจะต้องมีเส้นทางเหล่านี้:
พิจารณา <xavier> เป็นเส้นทางที่คุณได้บันทึกแหล่งที่มาคุณต้องรวมเส้นทางเหล่านี้ไว้ในโครงการของคุณ:
<xavier>src;<xavier>srcdelphi คุณสามารถค้นหาตัวอย่างที่จะใช้ซาเวียร์ในแหล่งข้อมูลของตัวเอง เพียงแค่ดูหน่วย Xavier*Tests
นอกจากนี้ด้านล่างคุณสามารถค้นหาพื้นฐานที่จะเริ่มต้น
ใช้ XML นี้สำหรับตัวอย่างทั้งหมดด้านล่าง:
<? 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 > หากคุณต้องการค้นหาโหนดเด็ก value ของโหนด foo ทำสิ่งนี้:
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 . ในความเป็นจริงเราไม่จำเป็นต้องมีตัวแปร pack หรือ n เพียงแค่โทรโดยตรง:
begin
ShowMessage(
TXMLPack.Create(
TDataFile.Create( ' file.xml ' ).Ref.Stream
)
.Ref
.Node( ' /root/foo/value ' )
.Text
); // "foo"
end .คุณสามารถเพิ่มโหนดได้อย่างง่ายดาย:
// 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 ;คุณสามารถนับจำนวนเด็กที่โหนดได้ทำสิ่งนี้:
// How many childs
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Childs
.Count
end ;คุณสามารถค้นหาแอตทริบิวต์ใด ๆ ด้วยชื่อที่ทำสิ่งนี้:
// Find by name "id"
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Attrs
.Item( ' id ' )
end ;การเพิ่มแอตทริบิวต์ก็ค่อนข้างง่ายเช่นกัน:
// Add an attribute: name="foo" value="bar"
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Attrs
.Add( ' foo ' , ' bar ' )
end ;โครงการนี้เปิดตัวภายใต้ใบอนุญาต MIT ดูใบอนุญาต