我想将XML文件读入char *buffer
使用C.
做这个的最好方式是什么?
我应该如何开始?
将文件的内容读入单个,简单的缓冲区真的是你想要做的吗?XML文件通常需要解析,你可以使用像libxml2这样的库来实现,只是举一个例子(但值得注意的是,用C实现).
如果你想解析 XML,不只是将它读入缓冲区(某些不是特定于XML的,请参阅Christoph和Baget的答案),你可以使用例如libxml2:
#include#include #include int main(int argc, char **argv) { xmlDoc *document; xmlNode *root, *first_child, *node; char *filename; if (argc < 2) { fprintf(stderr, "Usage: %s filename.xml\n", argv[0]); return 1; } filename = argv[1]; document = xmlReadFile(filename, NULL, 0); root = xmlDocGetRootElement(document); fprintf(stdout, "Root is <%s> (%i)\n", root->name, root->type); first_child = root->children; for (node = first_child; node; node = node->next) { fprintf(stdout, "\t Child is <%s> (%i)\n", node->name, node->type); } fprintf(stdout, "...\n"); return 0; }
在Unix机器上,您通常使用以下代码编译以上内容:
% gcc -o read-xml $(xml2-config --cflags) -Wall $(xml2-config --libs) read-xml.c