【转】libxml2 如何获得某个节点的所有信息
网址:http://bbs.csdn.net/topics/380115580
顶楼:
我的需求是这样的,我使用libxml2从内存中解析一个xml文件,需要修改某个节点下的一个子节点,修改完成之后,我只想取得上面的那个节点中的所有内容信息,并不想获取整个xml文件信息,然后拿这个节点的所有信息进行其他操作,如:输出到文件中,或写入的一个变量中,再进行其他操作…… 求各位大侠不吝赐教!例如:
<domain type="kvm">
<name>xuteng-win7</name>
<uuid>3906e42c-2002-1902-c474-52c222b95e91</uuid>
<memory>4194304</memory>
<currentMemory>1048576</currentMemory>
<vcpu>2</vcpu>
<os>
<type arch="x86_64" machine="rhel6.0.0">hvm</type>
<boot dev="hd" />
</os>
</domain>
当我修改os节点后
<os>
<type arch="x86_64" machine="rhel6.0.0">hvm</type>
<boot dev="ssssss" />
</os>
现在我只想得到os节点的所有内容,如上所示,请问该如何实现,或许libxml2已经有相应的API函数,但是我没有找到,希望大虾们不吝赐教,在下感激不尽!
1楼:
呵呵,问题已经解决! 翻遍了libxml2的API,在tree.h中有两个函数被我发现,一个是xmlNodeDump,另一个是xmlNodeDumpOutput,我用的是第一个,另一个用法基本上一样,有兴趣的童鞋们可以试试!
具体做法是定义一个指针变量 xmlBufferPtr xml_buf = NULL;
然后创建xmlBUfferPtr, xml_buf = xmlBufferCreate();
再调用 xmlNodeDump(xml_buf, doc, node, 0, 0);
再将该节点的内容存入一个变量当中: const xmlChar xml = xmlBufferContent(xml_buf);
用完之后释放内存
xmlFree(xml);
xmlBufferFree(xml_buf);
xmlFreeDoc(doc);
xmlCleanupParser();
ZZ
【转】libxml2 如何获得某个节点的所有信息的更多相关文章
- webots自学笔记(二)节点与机器人建模
原创文章,出自"博客园, _阿龙clliu" :http://www.cnblogs.com/clliu/ 上一次介绍了界面和一个简单的自由落体,然而在实际运用中,机器人的结构都是 ...
- vue项目中使用bpmn-流程图xml文件中节点属性转json结构
内容概述 本系列“vue项目中使用bpmn-xxxx”分为七篇,均为自己使用过程中用到的实例,手工原创,目前陆续更新中.主要包括vue项目中bpmn使用实例.应用技巧.基本知识点总结和需要注意事项,具 ...
- 【微信小程序开发•系列文章六】生命周期和路由
这篇文章理论的知识比较多一些,都是个人观点,描述有失妥当的地方希望读者指出. [微信小程序开发•系列文章一]入门 [微信小程序开发•系列文章二]视图层 [微信小程序开发•系列文章三]数据层 [微信小程 ...
- Spring总结—— IOC 和 Bean 的总结
一.Spring 官方文档中给出的 Spring 的整体结构. 二.我自己所理解的 Spring 整体结构图. 三.本次总结 Spring 核心部分 1.从上面图中可以看出,Beans 和 Conte ...
- B+树的特点
1.B+树是应文件系统产生的B树的变种.它依然是一颗多路查找树,与B树相比它的不同体现在: (1).如果非叶子节点包含n个关键码,则这个节点有n个子树. (2).非叶子节点仅包含关键码信息,叶子节点包 ...
- POJ 2104&HDU 2665 Kth number(主席树入门+离散化)
K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 50247 Accepted: 17101 Ca ...
- UiAutomator源码分析之获取控件信息
根据上一篇文章<UiAutomator源码分析之注入事件>开始时提到的计划,这一篇文章我们要分析的是第二点: 如何获取控件信息 我们在测试脚本中初始化一个UiObject的时候通常是像以下 ...
- hadoop各个类及其作用
1.基础包(包括工具包和安全包) 包括工具和安全包.其中,hdfs.util包含了一些HDFS实现需要的辅助数据结构:hdfs.security.token.block和hdfs.security.t ...
- 从虚拟dom了解vue渲染函数
vue渲染函数就是render函数,他会返回一个VNode,VNode是一个js对象,是dom的映射 vue在介绍渲染函数那个章节看的不是很懂,所以想要彻底的理解渲染函数,首先需要了解vue的虚拟do ...
随机推荐
- CNN实现垃圾邮件分类(行大小不一致要补全)
以下是利用卷积神经网络对某一个句子的处理结构图 我们从上图可知,将一句话转化成一个矩阵.我们看到该句话有6个单词和一个标点符号,所以我们可以将该矩阵设置为7行,对于列的话每个单词可以用什么样的数值表示 ...
- js数组之迭代器方法
迭代器方法:对数组中的每一个元素应用一个函数,可以返回一个值,一组值或者一个新的数组.说的什么啊这是,根本听不懂.实践 不生成新数组的迭代器的方法: <html> <head> ...
- cordova+Android Studio 1.0+ionic+win7(转)
转自http://blog.csdn.net/fuyunww/article/details/42216125 目录(?)[-] 在项目目录下执行 a创建工程 b添加平台支持 c添加插件在Androi ...
- CFA
拜耳色彩滤波阵列(Bayer Color Filter Array, CFA)是非常有名的彩色图片的数字采集格式.由1/2的G,1/4得R,1/4的B组成. 当Image Sensor向外逐行输出数据 ...
- Ignite内存数据库与sql支持
Ignite采用h2作为内存数据库,支持h2的一切sql语法.如果是本地缓存或者复制缓存,sql执行直接在本地h2数据库中执行,如果是分区缓存,ignite则会分解sql到多个h2数据库执行后再汇总. ...
- cojs DAG计数问题1-4 题解报告
最近突然有很多人来问我这些题目怎么做OwO 然而并不是我出的,结论我也不是很懂 研究了一下觉得非常的一颗赛艇,于是就打算写这样一篇题解 DAG 1 我们考虑DAG的性质,枚举出度为0的点 设出度为0的 ...
- Python入门之面向对象module,library,package之间区别
背景 Python中有一些基本的名词,很多人,尤其是一些初学者,可能听着就很晕. 此处,简单总结一下,module,library,package之间的大概区别. Python中的module的简介 ...
- 一个简单的JavaScript实例
1 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&q ...
- 06: linux中find查找命令总结
1.在当前目录下查找以txt结尾的文件 find . -name "*.txt" 2.在当前目录下查找所有以字母开头的文件 find . -name "[a-z]*&qu ...
- 07: jquery.cookie操作cookie
1.1 jquery.cookie常用方法 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术 1. 添加一个"会话cookie" $.cook ...