Herramientas de usuario

Herramientas del sitio


fw:txml

¡Esta es una revisión vieja del documento!


TinyXML

General

Cómo empezar?

Una vez descargado y descomprimido nos encontramos con una serie de ficheros .cpp y .h. Los podemos añadir a un proyecto de Visual Studio si trabajamos en Windows o llamar al comando make si estamos trabajando en linux (ya viene con su makefile to mono) y directamente se compilará. Una vez compilemos y ejecutemos lo que estaremos viendo será el programa que viene de ejemplo en xmltest.cpp. Aún así para utilizarlo en tu código únicamente tendrás que añadir #include “tinyxml.h”.

Cargar un documento

TiXmlDocument doc( "demo.xml" );
if (!doc.LoadFile())
  cout << "Carga incorrecta.\n";

TiXmlDocument es un objeto que representa un documento .xml, el método LoadFile carga dicho documento sobre el objeto y devuelve un boolean indicando si la carga se ha realizado correctamente.

Estructura de clases


La clase de la que heredan todas las demás subclases es TiXmlBase, inmediatamente, después de esta vienen TiXmlAttribute y TiXmlNode.

Escritura

Montar un documento

La estructura de un objeto .xml empieza con una declaración, luego tiene un elemento principal y dentro de este otros elementos. Un elemento puede contener otros elementos, texto y\o propiedades. Cada uno de estos conceptos tiene un objeto en TinyXML asociado:

  • TiXmlDeclaration, el primer elemento del fichero. Se crea pasándole al constructor tres parámetros correspondientes a la versión, la codificación y el standalone. Sus métodos permiten consultar y asginar estas propiedades del documento.
  • TiXmlElement, equivale a un elemento cualquiera (ya sea el principal o uno anidado), puedes añadir sus atributos mediante el método setAttribute. Puedes recoger el texto, sin tener que acceder a su elemento anidado TiXmlText, mediante el método GetText.
  • TiXmlText, es el contenido, en texto, de un tag. El método más destacado es ToText.

Cómo anidar elementos?

Para ello existe la función LinkEndChild que tienen tanto los elementos de un documento como el documento en sí, esta función añade al final el elemento pasado por parámetro:

TiXmlDocument doc;
TiXmlDeclaration * decl = new TiXmlDeclaration( "1.0", "", "" );
TiXmlElement * element = new TiXmlElement( "Hello" );
TiXmlText * text = new TiXmlText( "World" );
element->LinkEndChild( text );
doc.LinkEndChild( decl );
doc.LinkEndChild( element );

Montaría:

<?xml version="1.0" ?>
<Hello>World</Hello>

Los atributos

Asignar un atributo a un elemento es fácil utilizando la función SetAttribute(string, string|int) de este, como vemos permite asignar un valor en string o uno en integer, si quisieramos asignar un número decimal utilizaríamos SetDoubleAttribute.

Guardar

Para guardar un documento, una vez lo tengamos montado únicamente deberemos de llamar al método SaveFile (string) de un objeto TiXmlDocument.

doc.SaveFile("c:\\ejemplo.xml");

Lectura

Recorrer un archivo

Recorrer atributos de un elemento

Como...

fw/txml.1211744169.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)