xml
http://jianlee.ylinux.org/Computer/C/libxml.html 需求安装包:libxml2 和libxm2-devel,其中libxml主要包括.so文件,libxml2-devel 包括开发文档和所有的.h文件。可用rpm ?ql 命令查看,rpm ?qd可查看文档信息。 3.1 数据类型--xmlChar
xmlMalloc 是动态分配内存的函数; xmlFree 是配套的释放内 存函数; xmlStrcmp 是字符串比较函数等等。基本上 xmlChar 字符串相关函数 都在xmlstring.h 中定义;而动态内存分配函数在 xmlmemory.h 中定义。另外要 注意,因为总是要在 xmlChar* 和 char* 之间进行类型转换,所以定义了一个宏 BAD_CAST ,其定义如下: xmlstring.h #define BAD_CAST (xmlChar *) 数据结构
代表DOM结构中的除文档类型类型外的其它节点类型。包含单一结点 的结构, xmlNodePtr 是指向这个结构的指针,它被用于遍历文档树。节点应 该是xml中最重要的元素了, xmlNode 代表了xml文档中的一个节点,实现为一 个 struct ,内容很丰富: tree.h http://jianlee.ylinux.org/Computer/C/libxml.html xml 文档的操作其根本原理就是在节点之间移动、查询节点的各项信息,并进行 增加、删除、修改的操作。 xmlDocSetRootElement 函数可以将一个节点设置为 某个文档的根节点,这是将文档与节点连接起来的重要手段,当有了根结点以 后,所有子节点就可以依次连接上根节点,从而组织成为一个 xml 树。
创建一个 XML 文档流程如下:
xmlNewProp (proot_node,BAD_CAST "版本",BAD_CAST "1.0");
<根节点 版本="1.0">
xmlAddChild (pnode1,xmlNewText (BAD_CAST "这是更低的节点,子子子节点1"));
<子子节点1>这是更低的节点,子子子节点1</子子节点1>
解析 XML 文档解析一个xml文档,从中取出想要的信息,例如节点中包含的文字,或者某个节点 的属性,其流程如下:
注意: 节点列表的指针依然是 xmlNodePtr ,属性列表的指针也是 xmlAttrPtr ,并没有 xmlNodeList 或者 xmlAttrList 这样的类型 。看作列表的时候使用它 们的 next 和 prev 链表指针来进行轮询 。只有在 Xpath 中有 xmlNodeSet 这 种类型。
//BBB[@id] <AAA> XML转义字符
参考 http://www.w3school.com.cn/xpath/ http://www.zvon.org/xxl/XPathTutorial/Output_chi/example5.html http://www.52php.cn/article/p-aiaawlne-bra.html http://www.blogjava.net/wxb_nudt/archive/2007/11/28/161340.html //BBB选择所有BBB元素 //BBB[@id]:选择有"id"属性的BBB元素 xmlDocGetRootElement(doc):取得文档根元素 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |