之前的章节中介绍如何安装Ubuntu下libxml2的安装和使用以及如何使用CMake建立工程 CMake加入第三方库,这章将会更深入一步,讲述如何创建一个xml文件Create A Tree,如何解析xml文件,这两个例子来自于官网的示例,同时结合Android实际的例子,介绍解析一个设备树的配置文件。
新建工程CreateTree
/**
* section: Tree
* synopsis: Creates a tree
* purpose: Shows how to create document, nodes and dump it to stdout or file.
* usage: tree2 <filename> -Default output: stdout
*/
#include <stdio.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
/*
* A simple example how to create DOM. Libxml2 automatically
* allocates the necessary amount of memory to it.
*/
int main(int argc, char **argv)
{
xmlDocPtr doc = NULL; // document pointer
xmlNodePtr root_node = NULL, node = NULL, node1 = NULL; // node pointers
char buff[256];
int i, j;
LIBXML_TEST_VERSION;
// Create a new document, a node and set it as a root node
doc = xmlNewDoc(BAD_CAST "1.0");
root_node = xmlNewNode(NULL, BAD_CAST "root");
xmlDocSetRootElement(doc, root_node);
// Creates a DTD declaration. Ins't mandatory.
xmlCreateIntSubset(doc, BAD_CAST "root", NULL, BAD_CAST "tree.dtd");
// xmlNewChild() creates a new node, which is "attached" as child node of root_node node.
xmlNewChild(root_node, NULL, BAD_CAST "node1", BAD_CAST "content of node 1")