Xavier es una pequeña biblioteca XML, orientada a objetos y multiplataforma que simplifica el trabajo con archivos y transmisiones XML usando XPATH.
Atención: todavía estamos en una versión alfa muy temprana, la API puede y cambiará con frecuencia. Por favor, úselo bajo su propio riesgo, hasta que lanzemos la versión 1.0.
Esta API se está escribiendo en Pascal y Lázaro gratuitos. Sin embargo, también es compatible con Delphi.
La mayoría de las bibliotecas XML son muy complejas. Cada clase tiene tantos métodos que podrían ser difíciles de usar y comprenderlos. Estas implementaciones también son muy procesales.
El objetivo principal es reemplazar el código de procedimiento común, que podría tener tantos condicionales y variables, a un código declarativo y orientado a objetos para trabajar más fácilmente con XML.
El código sigue una restricción de reglas sobre nombres y estilo, como prefijos y sufijos, para ayudar a los programadores a encontrar la clase o método correcto para hacer el trabajo rápidamente.
Clonar el repositorio en algún directorio de su computadora.
Internamente, este proyecto utiliza la biblioteca XML incorporada para cada compilador.
Además de eso, estamos usando otras bibliotecas:
Se ha probado utilizando estas versiones:
Para instalar en Lázaro :
JamesLib.lpk y mormot_base.lpk disponible; consulte las dependencias/pkg/XavierLib.lpkEl IDE será consciente del paquete Xavierlib para usar en cualquier proyecto.
Teniendo en cuenta <xavier> Como la ruta donde ha guardado las fuentes, su proyecto debe incluir estas rutas:
Teniendo en cuenta <xavier> Como la ruta donde ha guardado las fuentes, debe incluir estas rutas en su proyecto:
<xavier>src;<xavier>srcdelphi Puede encontrar algunos ejemplos para usar Xavier en su propia fuente. Simplemente eche un vistazo a las unidades Xavier*Tests .
Además, a continuación puede encontrar los conceptos básicos para comenzar.
Tome este XML para todos los ejemplos a continuación:
<? 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 > Si desea encontrar el nodo infantil value del nodo foo , haga esto:
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 . De hecho, no necesitamos variables pack o n . Solo llame directamente:
begin
ShowMessage(
TXMLPack.Create(
TDataFile.Create( ' file.xml ' ).Ref.Stream
)
.Ref
.Node( ' /root/foo/value ' )
.Text
); // "foo"
end .Puede agregar un nodo fácilmente haciendo esto:
// 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 ;Puede contar cuántos niños tiene un nodo:
// How many childs
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Childs
.Count
end ;Puede encontrar cualquier atributo por nombre haciendo esto:
// Find by name "id"
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Attrs
.Item( ' id ' )
end ;Agregar un atributo también es bastante fácil:
// Add an attribute: name="foo" value="bar"
begin
TXMLPack.Create(TDataFile.Create( ' file.xml ' ).Ref.Stream)
.Ref
.Node( ' /root ' )
.Attrs
.Add( ' foo ' , ' bar ' )
end ;Este proyecto se publica bajo la licencia MIT. Ver licencia.