<?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遍历子节点例子的更多相关文章

  1. 5月25日-js操作DOM遍历子节点

    一.遍历节点 遍历子节点 children();//获取节点的所有直接子类 遍历同辈节点 next(); prev(); siblings();//所有同辈元素 *find(); 从后代元素中查找匹配 ...

  2. js遍历 子节点 子元素

    Js 节点 子元素 属性 方法 // 添加子节点前 删除所有子节点 var usernameEle = document.getElementById("username"); v ...

  3. DOM父节点、子节点例子

    父节点 <body> <ul id="oUl"> <li><a href="#">隐藏1</a>&l ...

  4. CCocos2Dx 一段遍历子节点的代码

    CCLog("Lein will hide account!CS_FAST_REGISTER_REQ"); <p> CCNode* child1 = (CCNode*) ...

  5. JS 查找遍历子节点元素

    function nextChildNode(node,clazz,tagName){ var count= node.childElementCount; for(var i=0;i<coun ...

  6. 问题:jQuery中遍历XML文件时候,获取子节点children不支持的情况(已解决)

    问题描述: 今天在写一个基于 jquery 的读取xml文件的程序时候,需要遍历xml的节点. 代码片段如下: function parse_xml_node(parent,result){ // r ...

  7. oracle递归查询子节点

    通过子节点向根节点追朔. select * from persons.dept start with deptid=76 connect by prior paredeptid=deptid 通过根节 ...

  8. 详解SimpleXML添加_修改_删除_遍历XML节点属性

    SimpleXML概述 要处理XML 文件,有两种传统的处理思路:SAX 和DOM.SAX 基于事件触发机制,对XML 文件进行一次扫描,完成要进行的处理:DOM 则将整个XML 文件构造为一棵DOM ...

  9. dom4j解析xml获取所有的子节点并放入map中

    dom4j递归解析所有子节点 //解析返回的xml字符串,生成document对象 Document document = DocumentHelper.parseText(resultXml); / ...

随机推荐

  1. Vue电商后台管理系统项目第2天-首页添加表格动态渲染数据&分页

    0x01.使用Github学习的姿势 基于昨天的内容,今天的内容需要添加几个单文件组件,路由文件也需要做相应的增加,今天重点记录使用Element-UI中的表格组件实现数据动态渲染的实现流程和分页功能 ...

  2. JavaScript指定周期来调用函数setTimeout和setInterval

    setTimeout方法:setTimeout setInterval方法:setInterval

  3. 2013-4-3 C#中alt键不是Keys.Alt 而是 Keys.LMenu

    2013-4-3 C#中alt键不是Keys.Alt而是Keys.LMenu

  4. PHP 试题(1)

    1.__FILE__表示什么意思?(5分)文件的完整路径和文件名.如果用在包含文件中,则返回包含文件名.自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一 ...

  5. 给websocket加入心跳包防止自动断开连接

    var userId=$("#userId").val(); var lockReconnect = false; //避免ws重复连接 var ws = null; // 判断当 ...

  6. git clone和download zip的区别

    采用git clone的项目包含.git目录,这里面有历史版本信息 采用下载zip文件的是没有版本历史信息的.只是当前分支的最新版本 克隆指令: $ git clone git://github.co ...

  7. python基础数据类型汇总

    list和dict 在循环一个列表和字典时,最好不要删除其中的元素,这样会使索引发生改变,从而报错! lis = [11, 22, 33, 44, 55] for i in range(len(lis ...

  8. el-table翻页序号不从1开始(已解决)

    法一:赋值方式(亲测有效) <el-table-column type="index" fixed="left" align="center&q ...

  9. H5 canvas 绘图

    H5的canvas绘图技术   canvas元素是HTML5中新添加的一个元素,该元素是HTML5中的一个亮点.Canvas元素就像一块画布,通过该元素自带的API结合JavaScript代码可以绘制 ...

  10. Django入门9--Django shell