[杂项]pugi::xml获取xml中的注释节点
前言
想到学习xml时的一句话,xml中注释也会被算作一个节点。那么我们就可以通过 pugixml 把注释节点获取出来,
<?xml version="1.0"?>
<mesh name="mesh_root"><!--这是一个注释节点-->some text<![CDATA[someothertext]]>some more text<node attr1="value1" attr2="value2" /><node attr1="value3" attr2="value4" /><node attr1="value2"><innernode /></node>
</mesh>
代码
pugi::xml_document doc;pugi::xml_parse_result result = doc.load_file("D:/pugixml-1.14/docs/samples/tree.xml");if(result){pugi::xml_node rootNode = doc.document_element();const char* commont = rootNode.first_child().value();qDebug() << "commont : " << commont;}
输出结果
commont : some text
并不是我们想要的结果
思路打开
我们直接去pugixml官网 quickstart。直接在页面上搜索 commont

看着代码确实看不出来东西,继续思路打开,找到源文件
modify_base.cpp
#include "pugixml.hpp"#include <string.h>
#include <iostream>int main()
{pugi::xml_document doc;if (!doc.load_string("<node id='123'>text</node><!-- comment -->", pugi::parse_default | pugi::parse_comments)) return -1;// tag::node[]pugi::xml_node node = doc.child("node");// change node namestd::cout << node.set_name("notnode");std::cout << ", new node name: " << node.name() << std::endl;// change comment textstd::cout << doc.last_child().set_value("useless comment");std::cout << ", new comment text: " << doc.last_child().value() << std::endl;// we can't change value of the element or name of the commentstd::cout << node.set_value("1") << ", " << doc.last_child().set_name("2") << std::endl;// end::node[]// tag::attr[]pugi::xml_attribute attr = node.attribute("id");// change attribute name/valuestd::cout << attr.set_name("key") << ", " << attr.set_value("345");std::cout << ", new attribute: " << attr.name() << "=" << attr.value() << std::endl;// we can use numbers or booleansattr.set_value(1.234);std::cout << "new attribute value: " << attr.value() << std::endl;// we can also use assignment operators for more concise codeattr = true;std::cout << "final attribute value: " << attr.value() << std::endl;// end::attr[]
}// vim:et
if (!doc.load_string("<node id='123'>text</node><!-- comment -->", pugi::parse_default | pugi::parse_comments)) return -1;
ok问题直接解决,原来是在加载xml时要配置对应的选项。很多时候遇到问题,不要觉得就没有办法,一定要把思路打开,说不定问题很简单。
相关文章:
[杂项]pugi::xml获取xml中的注释节点
前言 想到学习xml时的一句话,xml中注释也会被算作一个节点。那么我们就可以通过 pugixml 把注释节点获取出来, <?xml version"1.0"?> <mesh name"mesh_root"><!--这是一个注释节点-->some text<![CDATA[so…...
Spring Boot Admin集成与自定义监控告警
目录 一.Spring Boot Admin集成 1.引入依赖 2.添加配置 3.监控界面 二.Spring Boot Admin告警机制 1. 基本告警机制 2. 配置告警 2.1 triggers触发器讲解 3. 自定义通知 3.1 Instance 对象 三.Spring Boot Admin支持的监控属性 1.常见的Spring Boot Admin监控属性 …...
如何恢复回收站中已删除/清空的文件
回收站清空后如何恢复已删除的文件?是否可以恢复永久删除的文件?或者最糟糕的是,如果文件直接被删除怎么办?本文将向您展示清空回收站后恢复已删除数据的最佳方法。 回收站清空后如何恢复已删除的文件? “回收站清空后…...
玩短视频素材都是在哪里找的?推荐几个热门的短视频素材下载渠道
亲爱的短视频创作爱好者们,你是否在寻找视频素材时感到苦恼,觉得选择有限?别担心,今天我要为大家介绍几个超级实用的视频素材下载平台,帮助你的视频创作事半功倍! 蛙学网 我们首先要重点推荐的是蛙学网&am…...
ThinkPHP5 5.0.23-rce远程代码执行漏洞复现
启动环境,先关闭其他环境 启动 判断是否存在漏洞:访问/index.php?scaptcha页面,会出现报错 使用HackBar 插件发送 POST 请求 _method__construct&filter[]system&methodget&server[REQUEST_METHOD]dir 通过echo命令写入 Webshe…...
windows下安装并使用nvm
目录 一.准备工作:卸载node 卸载步骤 二.下载nvm 三.安装nvm 三.配置下载源【重要】 四.使用nvm安装node.js 五.nvm常用命令 六.卸载nvm 一.准备工作:卸载node 如果电脑上已经有node,那么我们需要先完全卸载node,再安装…...
mac m2 安装 nvm
踩坑-填坑 过程 红字都是 启动台-ohter-终端 里面直接输入就行了 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" brew -v 重启终端 brew uninstall nvm brew install nvm 成功提示 > Summary 🍺 /o…...
通信工程学习:什么是AN接入网络
AN接入网络 AN接入网络,全称Access Network,是电信部门业务节点与用户终端设备之间的实施系统。它可以部分或全部代替传统的用户本地线路网,并可包括复用、交叉连接和传输功能。以下是关于AN接入网络的详细解释: 一、AN接入网络的…...
MSCKF7讲:特征管理与优化
MSCKF7讲:特征管理与优化 文章目录 MSCKF7讲:特征管理与优化1 Feature.h2 OptimizationConfig3 initializePosition三角化LM优化3.1 计算归一化坐标深度初值generateInitialGuess① 理论推导② 代码分析 3.2 计算归一化误差cost① 理论推导② 代码分析 3…...
C# XML 使用教程
C# XML 使用教程 目录 C# XML 使用教程XML 是什么介绍组成XML 与 HTML 的区别 C# 中如何使用 XML序列化根元素子元素序列化方法 反序列化反序列化方法 序列化与反序列化实例 XML 是什么 介绍 可扩展标记语言 (Extensible Markup Language, XML) ,标准通用标记语言的…...
淘宝开放平台交易类API解析以及如何测试?
调用淘宝开放平台的订单接口,主要可以通过以下几种途径进行: 1. 直接使用淘宝开放平台提供的API接口 步骤概述: 注册淘宝开放平台账号:首先,你需要在淘宝开放平台注册一个开发者账号。创建应用:在注册并…...
基于聚类与LSTM对比特币价格深度分析与预测
1.项目背景 比特币作为全球最具影响力的加密货币之一,其价格受到多种复杂因素的共同作用,包括市场情绪、政策变化、大型机构的投资行为等,这些因素在不同的市场阶段对比特币价格波动产生直接或间接的影响。通过对比特币市场的深入分析&#…...
YOLOv9改进策略【Neck】| 使用CARAFE轻量级通用上采样算子
一、本文介绍 本文记录的是利用CARAFE上采样对YOLOv9的颈部网络进行改进的方法研究。YOLOv9采用传统的最近邻插值的方法,仅考虑子像素邻域,无法捕获密集预测任务所需的丰富语义信息,从而影响模型在密集预测任务中的性能。CARAFE通过在大感受…...
SpringMVC上
SpringMVC介绍 MVC模型 MVC全称Model View Controller,是一种设计创建Web应用程序的模式。这三个单词分别代表Web应用程序的三个部分: Model(模型):指数据模型。用于存储数据以及处理用户请求的业务逻辑。在Web应用…...
嵌入式软件--51单片机 DAY 2
一、数码管 1.数码管概况 2.设计 (1)硬件设计 我们可以通过阴极控制显示的位置,通过阳极控制显示的内容。两个数码管共有8个阴极引脚和16个阳极引脚,如果所有引脚都直接接入MCU,会造成MCU引脚的极大浪费。 为了节省…...
高精度加法,减法,乘法,除法
加法: 大整数该如何储存? 用数组储存: 把个位放在数下标为0的位置,十位放在数组下标为1的位置(也就是高位放在数组的后面) 因为这样,如果需要增加一位最高位,那我们就可以直接在…...
学习计划(大三上)
第二周 总结Java并发编程的艺术 学习JVM(博客文章) 第三周 学习JVM(博客文章) 图解TCP/IP 4章 第四周 完成简历项目 学习JVM(博客文章) 图解TCP/IP 4章 第五周 完成简历项目 深入学习RocketMQ底层…...
【第0006页 · 数组】寻找重复数
【前言】本文以及之后的一些题解都会陆续整理到目录中,若想了解全部题解整理,请看这里: 第0006页 寻找重复数 今天想讨论的一道题在 LeetCode 上评论也是颇为“不错”。有一说一,是道好题,不过我们还是得先理解了它才…...
移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——10.继承
1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设计的层…...
uniapp+vue3实现双通道透明MP4播放支持小程序和h5
双通道透明MP4视频播放的截图 以下是合成后结果,二个合并在一起进行播放 下载资源,打开运行直接使用看到效果 https://download.csdn.net/download/qq_40039641/89715780...
机器学习在糖尿病并发症预测中的应用:逻辑回归、SVM与随机森林对比实践
1. 项目概述:当机器学习遇见糖尿病并发症预测作为一名长期关注医疗数据分析的从业者,我见过太多糖尿病患者在确诊心肾并发症时,病情已进展到中晚期,治疗窗口期大大缩短。糖尿病本身的管理已足够复杂,而其引发的慢性肾病…...
使用vscode 搭建Java 开发环境
vscode 是一款开源,免费的代码编译环境,有丰富的插件可以选择,这篇文章就从配置Java环境介绍一下vscode使用的原理。 下载配置Java 从官网下载jdk安装了之后,直接安装即可,这里我安装了jdk1.8和jdk22,这里…...
ML赋能BDI智能体:规划、意图过滤与行动模块的技术融合与实践
1. 项目概述:当经典BDI架构遇上现代机器学习在人工智能领域,构建能够像人一样思考、决策和行动的智能体(Agent),一直是研究者们孜孜以求的目标。其中,信念-愿望-意图(Belief-Desire-Intention&a…...
UABEA:Unity跨平台资源编辑与二进制解析工具深度指南
1. 为什么Unity开发者在2024年仍要为资源编辑发愁——UABEA不是另一个UI工具,而是解耦工作流的手术刀“UABEA:终极跨平台Unity游戏资源编辑器完全指南”这个标题里,“终极”二字不是营销话术,而是对当前Unity资源编辑生态痛点的精…...
别再让Ubuntu卡成PPT!手把手教你用swapfile把交换空间从1G扩容到64G(附权限修复)
Ubuntu系统Swap空间扩容实战:从1G到64G的完整解决方案当你在Ubuntu上运行内存密集型任务时,是否遇到过系统突然变得异常缓慢,甚至完全卡死的情况?很多拥有大内存(如32GB或更高)的用户可能会惊讶地发现&…...
Unity游戏本地化实战:XUnity.AutoTranslator核心机制与真机调试
1. 这不是“加个插件就完事”的翻译方案,而是游戏本地化工程的起点在Unity项目里点开Asset Store搜“translation”,你会看到一堆标着“一键汉化”“自动翻译”的插件,图标闪亮,描述诱人。我去年接手一个海外发行的休闲游戏时也这…...
AI Native 公司构建指南:从 Anthropic 创始人手册到工程实践
【摘要】系统解析 AI Native 公司的本质特征与技术架构,基于 Anthropic 2026 年《创始人行动手册》核心框架,结合 31 家精益 AI 团队的真实案例,提供从想法验证到规模化增长的完整工程落地路径,帮助技术创业者避开 AI 时代特有的创…...
淘金币自动化脚本:解放双手的淘宝任务终极解决方案
淘金币自动化脚本:解放双手的淘宝任务终极解决方案 【免费下载链接】taojinbi 淘宝淘金币自动执行脚本,包含蚂蚁森林收取能量,芭芭农场全任务,解放你的双手 项目地址: https://gitcode.com/gh_mirrors/ta/taojinbi 在当今快…...
Nsight System和Compute命令行
Nsight System分析 nsys profile --tracecuda,nvtx --gpu-metrics-devicesall -o <out_file_name> python <python_file_name> <python args>示例 nsys profile --tracecuda,nvtx --gpu-metrics-devicesall -o profile_attention_bm128_bn64_w4_s2 python my…...
卖瓦楞纸箱怎么找客户?下游工厂在哪里
卖瓦楞纸箱找客户,本质是找用箱量大的下游工厂,核心难点是拿到这些工厂的名单和联系人——因为纸箱是本地化极强的耗材,客户往往就在方圆 100 到 200 公里内,谁先把本地下游工厂版图盘清楚,谁就掌握了竞争主动权。 用箱…...
