xavier
1.0.0
Xavier是一個小型XML庫,面向對象和跨平台,使用XPath簡化了使用XML文件和流的工作。
注意:我們仍處於非常早的Alpha版本,API可能會經常變化。請自行使用它,直到我們發布1.0版。
該API用免費的帕斯卡(Pascal)和拉撒路(Lazarus)編寫。但是,它也與Delphi兼容。
大多數XML庫非常複雜。每個班級都有很多可能難以使用和理解的方法。這些實現也是非常程序性的。
主要目標是將常見的程序代碼(可能具有許多條件和變量)替換為聲明性和麵向對象的代碼,以更輕鬆地與XML一起使用。
該代碼遵循有關命名和样式的限制規則,作為前綴和後綴,以幫助程序員找到正確的類或方法來快速完成工作。
在計算機中的某些目錄中克隆存儲庫。
在內部,該項目使用每個編譯器的內置XML庫。
除此之外,我們正在使用其他庫:
它已經使用這些版本進行了測試:
在Lazarus上安裝:
JamesLib.lpk和mormot_base.lpk可用 - 請參閱依賴項/pkg/XavierLib.lpk中打開軟件包IDE將意識到要在任何項目中使用的Xavierlib軟件包。
將<xavier>視為保存來源的路徑,您的項目必須包括以下路徑:
將<xavier>視為保存來源的路徑,您必須在項目中包括這些路徑:
<xavier>src;<xavier>srcdelphi您可以找到一些示例以在其自身的來源中使用Xavier。只需看看Xavier*Tests單元即可。
此外,在下面,您可以找到要啟動的基礎知識。
以下面的所有示例為例:
<? 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 >如果要找到foo節點的子節點的value ,請執行此操作:
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 ;該項目是根據麻省理工學院許可發布的。請參閱許可證。