C++ rapidxml的使用
来源:互联网 发布:中英文对照阅读软件 编辑:程序博客网 时间:2024/05/07 15:34
解析步骤
1 读取xml文件内容
以文件流的方式读取xml文件到char型数组中
char* ReadFiel(const char* fileName){ FILE* file = fopen(fileName,"rb"); if (file==0) { return 0; } fseek(file,0,SEEK_END); size_t len = ftell(file); fseek(file,0,SEEK_SET); char* data = new char[len+1]; memset(data,0,len+1); fread(data,1,len,file); fclose(file); return data;}
2 解析xml
void AnalysisXML(){ char* xml = ReadFiel("case.xml"); if (xml==0) { return; } rapidxml::xml_document<> doc; //创建xml文档对象 rapidxml::xml_node<>* root; //创建xml节点(根节点) rapidxml::xml_node<>* childNode; //创建xml节点(子节点) try { doc.parse<0>(xml); //解析xml文档 root = doc.first_node(); //得到根节点 childNode= root->first_node(); //得到根节点下的第一个子节点 for (;childNode;childNode=childNode->next_sibling())//遍历childNode的兄弟节点 { //获取节点的属性,并赋值给xml文档的节点属性对象xml_attribute<>* attrxxx rapidxml::xml_attribute<>* attrName = childNode->first_attribute("name"); rapidxml::xml_attribute<>* attrStart = childNode->first_attribute("start"); rapidxml::xml_attribute<>* attrEnd = childNode->first_attribute("end"); rapidxml::xml_attribute<>* attrFile = childNode->first_attribute("file"); //输出属性值 cout<<attrName->value()<<endl; cout<<attrStart->value()<<endl; cout<<attrEnd->value()<<endl; cout<<attrFile->value()<<endl; } } catch (...) { } delete []xml;}
总结如下:
转自:http://blog.csdn.net/angellove156/article/details/50623914
解析xml文件:
首先,通过文件读取IO流,
然后,将IO流,转换为char数组 buffer
解析buffer内的数据:
1 创建xml doc:
xml_doument<> doc;
2 解析数据:
doc.parse<0>(buffer), 0 是按照默认方式进行解析
3 xml的 构成:
xml_node<>:
xml_attribute<>
4 包含关系:
xml_node<> 包含 xml_attribute<>
xml_attribute<>是 键值对的形式:
name 对应一个属性值
5 获取根节点:
xml_node<> *root_node = doc.first_node()
如果找某个名字的节点:
xml_node<> *nameNode = root_node->first_node(“name”);
找同一个名字的其它节点:
xml_node<> *anotherNode = nameNode->next_sibling();
如果找某个节点的 某个名字的属性:
方法可以参考 找某个名字的节点
得到属性的值:
调用其value方法。
阅读全文
0 0
- RapidXML的使用
- RAPIDxml的使用
- C++ rapidxml的使用
- rapidxml使用
- rapidxml使用
- c++使用rapidxml读取cocos2dx的配置文件
- 使用rapidxml解析xml
- 使用 rapidxml 做配置文件
- RapidXml原理和使用
- RapidXml原理和使用
- 使用rapidxml读取配置文件
- 使用 rapidxml 做配置文件
- 使用rapidxml创建XML
- c++使用rapidxml
- RapidXml使用(备忘)
- rapidXml使用笔记
- rapidxml的简单封装
- rapidxml的alloc_func错误
- 海量数据的TopK问题
- Brocade switch upgrade firmware
- ADO.NET连接数据库字符串
- Orcal命令(一)
- 二叉树的操作
- C++ rapidxml的使用
- php 的数据强制类型转换和默认类型转换
- 寄存器-基本概念
- MySQL入门很简单-MySQL数据类型
- zuul源码分析
- 016讲五行爬虫网站图片,视频代码
- 网页设计师的7大必备技能
- Java HelloWorld
- tomcat发布相关的知识