Xavier عبارة عن مكتبة XML صغيرة ، موجهة نحو الكائنات ، والموضوع عبر المنصات التي تبسط العمل مع ملفات XML والدارات باستخدام XPath.
الانتباه: ما زلنا في إصدار alpha مبكر جدًا ، قد يتغير واجهة برمجة التطبيقات بشكل متكرر. من فضلك ، استخدمه على مسؤوليتك الخاصة ، حتى نصدر الإصدار 1.0.
تتم كتابة API هذه في Pascal و Lazarus الحرة. ومع ذلك ، فهو متوافق أيضا مع دلفي.
معظم مكتبات XML معقدة للغاية. كل فصل لديه العديد من الطرق التي قد يكون من الصعب استخدامها وفهمها. هذه التطبيقات إجرائية للغاية أيضًا.
الهدف الرئيسي هو استبدال الشفرة الإجرائية الشائعة ، والتي يمكن أن تحتوي على العديد من الشرطية والمتغيرات ، إلى رمز إعلاني وموجه نحو الكائنات للعمل بسهولة أكبر مع XML.
يتبع الكود قواعد تقييد حول التسمية والأناقة ، كبادئات وتلاحق ، لمساعدة المبرمجين على العثور على الفئة الصحيحة أو الطريقة للقيام بالمهمة بسرعة.
استنساخ المستودع في بعض الدليل في جهاز الكمبيوتر الخاص بك.
داخليًا ، يستخدم هذا المشروع مكتبة XML المدمجة لكل مترجم.
إلى جانب ذلك ، نحن نستخدم مكتبات أخرى:
تم اختباره باستخدام هذه الإصدارات:
للتثبيت على لازاروس :
JamesLib.lpk و mormot_base.lpk المتاحة - انظر التبعيات/pkg/XavierLib.lpkسوف تكون IDE على دراية بحزمة Xavierlib لاستخدامها في أي مشروع.
بالنظر إلى <xavier> كمسار حيث قمت بحفظ المصادر ، يجب أن يتضمن مشروعك هذه المسارات:
بالنظر إلى <xavier> كمسار حيث قمت بحفظ المصادر ، يجب عليك تضمين هذه المسارات في مشروعك:
<xavier>src;<xavier>srcdelphi يمكنك العثور على بعض الأمثلة لاستخدام Xavier في مصدره الخاص. فقط ألق نظرة على وحدات 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 Child of 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. انظر الترخيص.