2009-02-26 8 views

Antwort

3

MiniXML sein könnte, was Sie suchen, wenn Sie etwas einfach brauchen , einfach und C:

Mini-XML: Lightweight XML Library

Mini-XML ist eine kleine XML-Bibliothek, die können Sie XML und XML-ähnliche Datendateien in Ihrer Anwendung lesen und schreiben, ohne große Nicht-Standard-Bibliotheken zu benötigen. Mini-XML nur erfordert einen ANSI C kompatiblen Compiler (GCC funktioniert, wie die meisten ANSI C Compiler) und ein 'Make' Programm.

Allerdings gibt es eine ton of them reichen Komplexität und Bedürfnisse. MiniXML ist insofern nett, als es nicht mehr als einen einfachen Ansi C-Compiler benötigt. Viele von ihnen erfordern andere Bibliotheken oder spezielle Compiler.

-Adam

4

Xerces in C. XML zu erzeugen, ist bekannt es

ein einfach zu sein, geben versuchen
+0

Schön, ich habe es gerade gefunden. –

1
+0

Ther Markup dieser Antwort würde einen Scheck verdient ... – bortzmeyer

+0

Ja, aber die Tatsache, dass ich zu lahm bin, um herauszufinden, wie man die Links verwenden, sollte nicht davon ablenken, in diese beiden Bibliotheken zu schauen. Sie sind beide ziemlich gut. – Crowley

7

Ich mag libxml. Hier ist ein Beispiel für die Verwendung:

#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); 

} 

Zusammengestellt mit ‚gcc -Wall -I/usr/include/libxml2 -c create-xml.c & & gcc -lxml2 -o create-xml create-xml. o‘, wird dieses Programm an:

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

Für ein echtes Beispiel finden Sie my implementation von RFC 5388.

+0

Sehr cool, danke. –