rapidxml遍历子节点例子
<?xml version="1.0" encoding="utf-8"?>
<luaword>
<btn>
<info>
<type>btn_click</type>
<funinfo>BtnClick(%s)</funinfo>
<name>按下按钮,%s</name>
</info> <info>
<type>btn_name</type>
<funinfo>GetBtnName(%s)</funinfo>
<name>获取按钮名字,%s</name>
</info>
</btn> <process>
<info>
<type>process_start</type>
<funinfo>StartProcess(%s,%s)</funinfo>
<name>启动进程,%s,%s</name>
</info>
</process> <edit>
<info>
<type>edit_set</type>
<funinfo>SetEditnam(%s,%s)</funinfo>
<name>设置文本框内容,%s</name>
</info>
</edit> <ctrl>
<info>
<type>edit_set</type>
<funinfo>SetEditnam(%s,%s)</funinfo>
<name>设置文本框内容,%s</name>
</info>
</ctrl> <wnd>
<info>
<type>fetch_wnd</type>
<funinfo>GetWnd(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)</funinfo>
<name>获取窗口,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s</name>
</info>
</wnd>
</luaword>
源xml
// rapidxmlTest.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include <iostream>
#include <rapidxml.hpp>
#include <rapidxml_print.hpp>
#include <rapidxml_utils.hpp>
#include <process.h>
#include "CodingConvert.h"
int main()
{
rapidxml::file<> fdoc("luaword.xml");
std::string strbuf;
// std::cout << CCodingConvert::Utf8_To_Gbk(fdoc.data()) << std::endl;
strbuf = CCodingConvert::Utf8_To_Gbk(fdoc.data());
rapidxml::xml_document<> doc;
doc.parse<>(const_cast<CHAR*>(strbuf.data())); //解析xml文档
//std::cout << doc.name() << doc.value() << std::endl;
//获取root 节点
rapidxml::xml_node<>* root = doc.first_node();
//std::cout << root->name() << std::endl;
rapidxml::xml_node<>* itemTmp = root->first_node();
std::string itemName = root->name();
for (;nullptr!=itemTmp;itemTmp = itemTmp->next_sibling())
{
//std::cout << itemTmp->name() << itemTmp->value() << std::endl;
rapidxml::xml_node<>* subItem = itemTmp->first_node();
for (;nullptr!=subItem;subItem=subItem->next_sibling())
{
auto type = subItem->first_node("type");
if (type)
std::cout << type->name()<<":"<< type->value() << std::endl;
auto func = subItem->first_node("funinfo");
if (func)
std::cout << func->name() << ":" << func->value() << std::endl;
auto name = subItem->first_node("name");
if (name)
std::cout << name->name() << ":" << name->value() << std::endl;
}
}
system("pause");
return ;
}
rapidxml遍历子节点例子的更多相关文章
- 5月25日-js操作DOM遍历子节点
一.遍历节点 遍历子节点 children();//获取节点的所有直接子类 遍历同辈节点 next(); prev(); siblings();//所有同辈元素 *find(); 从后代元素中查找匹配 ...
- js遍历 子节点 子元素
Js 节点 子元素 属性 方法 // 添加子节点前 删除所有子节点 var usernameEle = document.getElementById("username"); v ...
- DOM父节点、子节点例子
父节点 <body> <ul id="oUl"> <li><a href="#">隐藏1</a>&l ...
- CCocos2Dx 一段遍历子节点的代码
CCLog("Lein will hide account!CS_FAST_REGISTER_REQ"); <p> CCNode* child1 = (CCNode*) ...
- JS 查找遍历子节点元素
function nextChildNode(node,clazz,tagName){ var count= node.childElementCount; for(var i=0;i<coun ...
- 问题:jQuery中遍历XML文件时候,获取子节点children不支持的情况(已解决)
问题描述: 今天在写一个基于 jquery 的读取xml文件的程序时候,需要遍历xml的节点. 代码片段如下: function parse_xml_node(parent,result){ // r ...
- oracle递归查询子节点
通过子节点向根节点追朔. select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid 通过根节 ...
- 详解SimpleXML添加_修改_删除_遍历XML节点属性
SimpleXML概述 要处理XML 文件,有两种传统的处理思路:SAX 和DOM.SAX 基于事件触发机制,对XML 文件进行一次扫描,完成要进行的处理:DOM 则将整个XML 文件构造为一棵DOM ...
- dom4j解析xml获取所有的子节点并放入map中
dom4j递归解析所有子节点 //解析返回的xml字符串,生成document对象 Document document = DocumentHelper.parseText(resultXml); / ...
随机推荐
- 阿里云智能数据构建与管理 Dataphin公测,助力企业数据中台建设
阿里云智能数据构建与管理 Dataphin (下简称“Dataphin”)近日重磅上线公共云,开启智能研发版本的公共云公测!在此之前,Dataphin以独立部署方式输出并服务线下客户,已助力多家大型客 ...
- IDEA使用中文api鼠标提示的设置
最近都在用IDEA来练习,发现有的方面确实比eclipse好用,eclipse里面可添加中文的API 提示,对初期的我帮助很大,但是IDEA却没有找到添加的地方,一直以来还以为不支持这个功能,比较遗憾 ...
- Android ListView批量选择(全选、反选、全不选)
APP的开发中,会常遇到这样的需求:批量取消(删除)List中的数据.这就要求ListVIew支持批量选择.全选.单选等等功能,做一个比较强大的ListView批量选择功能是很有必要的,那如何做呢? ...
- CDQ分治 三维偏序
这应该是一道CDQ分治的入门题目 我们知道,二维度的偏序问题直接通过,树状数组就可以实现了,但是三维如何实现呢? 我记得以前了解过一个小故事,应该就是分治的. 一个皇帝,想给部下分配任务,但是部下太多 ...
- redis 写入数据 越来越慢 是什么原因
redis并不会因为key的增加而导致写入明显变慢,肯定是其他因素.如果redis开启了持久化,在进行持久化时,性能必然下降,可以使用config命令查看持久化设置了没有.另外考虑是否是内存不足,一般 ...
- 正则表达式中的"\."表示什么意思
\ 这是引用符,用来将这里列出的这些元字符当作普通的字符来进行匹配.例如正则表达式\$被用来匹配美元符号,而不是行尾,类似的,正则表达式\.用来匹配点字符,而不是任何字符的通配符.
- js实现圆形的碰撞检测
文章地址:https://www.cnblogs.com/sandraryan/ 碰撞检测这个东西写小游戏挺有用der~~~ 注释写的还挺全,所以就不多说了,看注释 这是页面结构.wrap存放生成的小 ...
- Java反射机制(五):使用反射增强简单工厂设计模式
关于简单工厂设计模式的讲解,可参考博文<设计模式: 简单工厂模式>,此处不再介绍: 我们先观察之前介绍的关于简单工厂: public class OperateFactory { pub ...
- uni-app 常用框架内置方法 更新中 .....
获取 登录信息,getStorage 初始化页面数据 请求 下拉刷新页面 加载更多 点击跳转 个人中心 uni.request(OBJECT) success=成功 fail=失 ...
- P1110 变身
题目描述 给你一个长度为n的数组a,他们的坐标从1到n,并且他们的数值也在1到n之间且两两不同. 数组中的每个元素每轮回合都会变身,变身的结果取决于该元素当前的值,如果在某一个回合该元素的值为u,则下 ...