2009-02-26 5 views

Répondre

3

MiniXML pourrait être ce que vous cherchez, si vous avez besoin quelque chose de simple , facile et C:

Mini-XML: Lightweight XML Library

Mini-XML est une petite bibliothèque XML vous pouvez utiliser pour lire et écrire des fichiers de données XML et XML dans votre application sans nécessiter de grandes bibliothèques non standard . Le mini-XML seulement nécessite un compilateur compatible ANSI C (GCC fonctionne, comme le font les compilateurs ANSI C de la plupart des fournisseurs) et un programme 'make'.

Cependant, il existe un ton of them de complexité et de besoin. MiniXML est agréable car il ne nécessite pas plus qu'un simple compilateur Ansi C. Beaucoup d'entre eux nécessitent d'autres bibliothèques, ou des compilateurs spécifiques.

-Adam

4

Xerces est connu pour être facile, faire un essai

+0

Bien, je viens de le trouver. –

1
+0

Le balisage de cette réponse mériterait une vérification ... – bortzmeyer

+0

Oui, mais le fait que je sois trop boiteux pour comprendre comment utiliser les liens ne devrait pas nuire à l'examen de ces deux bibliothèques. Ils sont tous deux très bons. – Crowley

7

J'aime libxml. Voici un exemple d'utilisation:

#include <libxml/parser.h> 

int 
main(void) 
{ 

    xmlNodePtr root, node; 
    xmlDocPtr doc; 
    xmlChar *xmlbuff; 
    int buffersize; 

    /* Create the document. */ 
    doc = xmlNewDoc(BAD_CAST "1.0"); 
    root = xmlNewNode(NULL, BAD_CAST "root"); 

    /* Create some nodes */ 
    node = xmlNewChild(root, NULL, BAD_CAST "node", NULL); 
    node = xmlNewChild(node, NULL, BAD_CAST "inside", NULL); 
    node = xmlNewChild(root, NULL, BAD_CAST "othernode", NULL); 

    /* Put content in a node: note there are special characters so 
    encoding is necessary! */ 
    xmlNodeSetContent(node, 
       xmlEncodeSpecialChars(doc, BAD_CAST "text con&tent and <tag>")); 

    xmlDocSetRootElement(doc, root); 

    /* Dump the document to a buffer and print it for demonstration purposes. */ 
    xmlDocDumpFormatMemory(doc, &xmlbuff, &buffersize, 1); 
    printf((char *) xmlbuff); 

} 

Compilé avec gcc -Wall -I/usr/include/libxml2 -c create-xml.c & & gcc -o -lxml2 créer xml-créer-xml. o », ce programme affiche:

% ./create-xml 
<?xml version="1.0"?> 
<root> 
    <node> 
    <inside/> 
    </node> 
    <othernode>text con&amp;tent and &lt;tag&gt;</othernode> 
</root> 

Pour un exemple réel, voir my implementation de RFC 5388.

+0

Très cool, merci. –