C中的XML API?
他们都这么复杂吗? : http : //msdn.microsoft.com/en-us/library/ms766497(VS.85).aspx
只需要一些基本的东西来用C生成XML。
如果你需要简单,容易和C的东西, MiniXML可能就是你想要的东西:
Mini-XML:轻量级XML库
Mini-XML是一个小型XML库,可用于在应用程序中读取和写入XML和类似XML的数据文件,而无需大型非标准库。 Mini-XML只需要ANSI C兼容的编译器(GCC和大多数供应商的ANSI C编译器一样工作)和’make’程序。
然而,其中有很多种类的复杂性和需求。 MiniXML很不错,因为它不需要简单的Ansi C编译器。 其中很多都需要其他库或特定的编译器。
-亚当
我喜欢libxml 。 这是一个使用示例:
#include 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 ")); 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 / include / libxml2 -c create-xml.c && gcc -lxml2 -o create-xml create-xml.o’编译,该程序将显示:
% ./create-xml text con&tent and <tag>
有关实际示例,请参阅我对RFC 5388的 实现 。
众所周知, Xerces很容易,试一试
在C中制作XML的最简单方法是来自Tim Bray的高质量和免费的genx: http ://www.tbray.org/ongoing/When/200x/2004/02/20/GenxStatus
- Gnome 的XML C解析器是一个广泛的XML API。
- XML安全库是libxml2之上的一个很好的C库。