2009-02-26 18 views

回答

3

MiniXML可能是你在找什麼,如果你需要一些簡單,簡單,C:

Mini-XML: Lightweight XML Library

的Mini-XML是一個小型的XML庫 您可以使用在您的 應用程序中讀取和寫入XML和 類似XML的數據文件,而無需使用非標準庫的大型 。迷你XML只需要 需要兼容ANSI C的編譯器 (GCC的工作方式,如大多數供應商的ANSI C 編譯器)和「make」程序。

但是,有一個ton of them複雜性和需求。 MiniXML很好,因爲它不需要比簡單的Ansi C編譯器更多的功能。其中很多需要其他庫或特定的編譯器。

- 亞當

4

Xerces被稱爲是容易的,給它一個嘗試

+0

不錯,我剛剛找到它。 – 2009-02-26 23:50:10

7

我喜歡libxml。下面是使用的一個示例:

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

} 

編譯與「GCC -Wall -I/USR /包含/的libxml2 -c創建-xml.c & & GCC -lxml2 -o創建的XML創建的XML。 O」,這個程序將顯示:

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

對於一個實際的例子,見RFC 5388my implementation