问题标签 [rapidxml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - rapidxml first_node 不返回 null
我正在尝试在 C++ 中使用 RapidXML 解析 XML 文件,该文件类似于:
要识别我正在做的父节点:
它适用于前两个节点(根和 a),但是当我为节点“b”执行此操作时,它返回一个指向某处而不是 0 的指针,但“b”没有子节点。它不应该返回0吗?RapidXML 文档说:
函数 xml_node::first_node 概要
描述 获取第一个子节点,可选择匹配节点名称。
参数 name 要查找的孩子的名称,或 0 以返回第一个孩子,无论其名称如何;如果 name_size 不为零,则此字符串不必以零结尾
name_size 名称的大小,以字符为单位,或 0 以从字符串自动计算大小
case_sensitive 名称比较是否应该区分大小写;不区分大小写的比较仅适用于 ASCII 字符
返回 指向找到的孩子的指针,如果没有找到,则返回 0。
知道为什么会发生这种情况或我做错了什么吗?
谢谢
c++ - C++ RapidXML - 编辑 XML 文件中的值
我最近开始使用 RapidXML,解析值很好(我可以从元素内部获取数据),但我想编辑元素内部的值。
为了这个程序的目的,我想把它变成:
进入这个:
我在某处读到它rapidxml::xml_node
具有value()
更改元素内部值的功能,但它似乎不起作用。当我写出文件时,我得到了与以前完全相同的东西。这是我的代码:
有任何想法吗?
编辑:
结合接受的答案,该parse()
函数还需要具有rapidxml::parse_no_data_nodes
标志:
然后它将起作用。
c++ - 使用 C++ 从 XML 文件返回 char* 以外的数据类型时出错
这是我第一次使用 XML,我目前正在尝试使用 C++ 从 XML 文件返回一个整数(实际上想要返回一个双精度值,但还没有那么远)。我正在使用 RAPIDXML 和以下实现:
所有文件都在同一个目录中。
XML (firstxml.xml):
XML 架构(firstxsd.xsd):
C++ (test.cxx):
错误:
从我在线阅读的教程中,我相信我正确地构建了文件,因此从节点 A 解析到 C++ 文件中的值应该是一个整数。我确实注意到的一件事是,在 RAPIDXML 手册中, value() 的规范如下:
所以函数定义说它总是返回一个字符指针,但是“值的解释取决于节点的类型”这一行暗示它返回一个依赖于类型的值。
感谢您花时间查看我的问题,非常感谢您的帮助,
保罗。
c++ - C++ RapidXML get sibling of the same type?
So, in RapidXML, I'm trying to loop through my file to get the data from some tileset
nodes:
You're probably saying, what's the problem? Well, in RapidXML, the next_sibling()
function optionally matches the name:
Hence, if a node is not found with the name, it'll just return the next sibling regardless. This is a problem in my program, and I just plain don't want the extra iteration. I think this is stupid, but whatever. Is there a way to make it ONLY iterate through my tileset
nodes?
c++ - 使用 RapidXML 和 Dev C++ 解析 C++ 中的 XML 文件
所以我必须在课堂上为我的 C++ 项目解析一个 XML 文件,并且我正在使用 RapidXML。rapidxml_iterators.hpp 文件给我带来了一些麻烦。顺便说一句,我正在使用 Dev C++
起初,我有以下代码:
在我的 main.cpp 中,我做了:#include "rapidxml_iterators.hpp" 并在我尝试编译它时给了我一个预期的嵌套名称说明符错误。我按照compile rapidxml under linux with g++的说明,将代码从顶部更改为以下内容:
现在,它给了我这些错误:
- 没有名为ptrdiff_t' in
std' 的类模板 -ISO C++ 禁止声明没有类型的 `difference_type'
如果有人对如何修复此代码有任何想法,我将永远感激不尽。提前致谢!
c++ - 使用 Dev C++ 在 C++ 中使用 RapidXML 编译错误
我在 Dev C++ 中为我的 C++ 项目解析 XML 文件,并且在 rapidxml_iterators.hpp 文件中有以下代码:
它给了我这些错误:
在得到这些错误之前,上面的代码如下:
这给了我这样的嵌套名称说明符错误:
在我进行解析的主文件中,我有以下内容:
我已经在这个网站上浏览过类似的帖子,我也听从了他们的建议,但到目前为止,他们都没有解决我的问题。是 Dev C++ 还是我的代码有问题?谢谢
c++ - 使用 RapidXML 解析
我有一个 XML 文件,我应该使用 RapidXML 和 c++ 对其进行解析。该文件是系统发育树。每个节点都有一个节点,其中包含 1-3 个子节点,每个子节点都有值。节点可以是学名、通用名或等级。我的问题是,由于每个分类节点的子节点各不相同(例如,一个可能有学名和通用名,一个可能只有学名),我将如何访问子节点的每个值?例如,我写了代码:
但是我在该行string comName = comName_node->value()
和 RapidXML 文件的这个方法中得到了 EXC_BAD_ACCESS 的线程错误
这是我正在解析的文件的一部分:
谢谢你的帮助!
c++ - 使用 RapidXML 和 c++ 从 XML 文件构建树
对于我的 c++ 类的项目,我应该解析和 xml 文件并从中构建二叉树。该文件比这更密集,但布局如下:
我很难弄清楚如何解析这些数据以便我可以构建一棵树。我在想我可以对每个分支使用递归,但我只能得到一个孩子。有人暗示使用队列将数据放入树结构中,但我不太确定如何使用队列遍历树的所有级别。我觉得递归是解析每个分支数据的最简单方法,但我就是不知道如何正确实现递归方法。这是我尝试使用的方法。我先传入根节点:
它只通过每个节点的第一个子节点返回 海洋生物 鱼 箭鱼 陆地动物 哺乳动物 狗
我真的很感激任何正确方向的指示。谢谢!
c++ - 按 C++ 顺序解析 XML
这与我之前的一个问题有关。我正在尝试从 xml 文件构建一棵树。我计划浏览 xml 文件并从数据中创建对象,并按前序和中序创建对象的向量,以便我可以构造树对象。我使用的 xml 文件比这要密集得多(大约 23 级左右),但这里是一个布局示例:
我的预购和后购方法。首先传入根节点“MyJournal”。
到目前为止,我能够通过文件并按前序和后序获取对象,但我无法弄清楚如何按顺序获取数据,因为没有左或右指针来递归调用函数。谁能给我一些关于如何去做的指导?是否可以通过这种方式获取数据并成功构建树形结构?感谢您的任何帮助!
c++ - 使用 RapidXML 解析 XML 树并丢弃不需要的节点
我对使用 RapidXML 解析 XML 树很感兴趣;但是,这个 XML 有几层我不需要的行。这是因为它是遗传树的表示,许多层被称为“进化枝”,这对我来说基本上是无用的信息。
例如,这里是一个文档示例:
树的这一部分应该代表真核生物是新村的孩子,而新村又是系统发育的孩子。但是,如果我使用 RapidXML 解析它而不考虑进化枝节点的外观,那么它将有几个不必要的层。有谁知道如何进行此操作?