//compilacion:gcc archivo.c -o archivo.bin -I /usr/include/libxml2 -lxml2
//Es necesario tener las librerias libxml instaladas
#include <libxml/xmlreader.h>
#include <stdio.h>
void processNode(xmlTextReaderPtr reader) {
xmlChar *name, *value;
name = xmlTextReaderName(reader);
if (name == NULL)
name = xmlStrdup(BAD_CAST "--");
value = xmlTextReaderValue(reader);
printf("%d %d %s %d",
xmlTextReaderDepth(reader),
xmlTextReaderNodeType(reader),
name,
xmlTextReaderIsEmptyElement(reader));
xmlFree(name);
if (value == NULL)
printf("\n");
else {
printf(" %s\n", value);
xmlFree(value);
}
}
int streamFile(char *filename) {
xmlTextReaderPtr reader;
int ret;
reader = xmlNewTextReaderFilename(filename);
if (reader != NULL) {
ret = xmlTextReaderRead(reader);
while (ret == 1) {
processNode(reader);
ret = xmlTextReaderRead(reader);
}
xmlFreeTextReader(reader);
if (ret != 0) {
printf("%s : Error analizando el fichero\n", filename);
}
} else {
printf("Imposible abrir el fichero %s\n", filename);
}
}
int main(){
streamFile("ejemplo.xml");
}
miércoles 2 de febrero de 2011
Analizador XML en C
El siguiente código es un pequeño ejemplo de cómo leer y procesar un archivo xml en C. Si deseas implementar una mayor funcionalidad puedes utilizar el SAX Parser de C++ incluido en las librerias libxml++.
Suscribirse a:
Enviar comentarios (Atom)
Thank you for sharing such relevant topic with us. I really love all the great stuff you provide. Thanks again and keep it coming.
ResponderSuprimir