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 ;该项目是根据麻省理工学院许可发布的。请参阅许可证。