问题标签 [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.
g++ - linux下用g++编译rapidxml
以下简单程序无法用 gcc 4.4.3 编译
编译产生以下错误:
我做错了什么?
c++ - RapidXML XML 解析错误
我正在解析一个非常简单的 XML 文件:
当我使用默认设置解析它时,即 parse<0>(),如下所示:
使用 xml_node.value_size() 或 xml_node.name_size() 查询时,所有节点都位于正确的位置并具有正确的长度,但实际上将名称或值放入字符串甚至只是 printf(),它会返回很多像下面这样的东西:
有没有其他人遇到过这个?
c++ - 有什么方法可以使用 c++ 在快速 xml 中通过标签获取 xml 值
有什么方法可以使用 c++ 在 rapidxml 中通过其标记名获取标记的值
我需要获取账面价值,即示例和 book1 值....我们可以使用这个doc.first_node()->value()
获取第一个节点和下一个节点,但我需要有什么方法可以获取类似的值get by name
回答
c++ - RapidXml 线程安全吗?
RapidXml的文档说
池维护 RAPIDXML_STATIC_POOL_SIZE 字节的静态分配内存。在静态内存耗尽之前,不会进行动态内存分配。当静态内存耗尽时,池通过使用全局 new[] 和 delete[] 操作符分配每个大小为 RAPIDXML_DYNAMIC_POOL_SIZE 的额外内存块
我将其解释为:RapidXML 使用全局内存池。全局内存池线程上的操作是否安全?即,我可以在整个程序中使用多个 RapidXML 解析器实例而不必考虑线程问题吗?
c++ - Rapidxml 和 UTF8
我正在使用 RapidXML,但我需要将我的字符串写为 UTF8,在 Rapidxml 手册中解释它支持 UTF8,请告诉我如何通过 C++ ISO 使用它?
c++ - 添加数字(双精度/浮点数)作为 RapidXML 节点的属性
我对 RapidXML 很陌生。我想构建一个 Xml 文档并将其打印到文件中。一切正常,但我不确定我是否正确执行了该过程的一部分:
将属性添加到双精度节点。
我正在使用标准 C++ 的东西:
有没有更优雅/更快的方式?像(一厢情愿的想法):
我需要将大量的双打保存到我的 xml 文件中,所以性能是我关心的主要问题。
问候,奥利弗
c++ - 试图理解 RapidXml 内存分配
我在 C++ 程序中使用 RapidXml。好吧,没问题,它可以工作。我只是不明白为什么我必须使用指针而不是变量值...如果您查看 RapidXml wiki 页面,提供了一些示例,这是 RapidXml 开发人员提供的示例:
好吧,为什么它使用指向 xml_node 的指针???
我问这个是因为我需要一个函数来返回一个 xml_node ...
所以如果我这样做:
xml_node<>* mynode = ... return *mynode;
可以吗??因为我想稍后使用返回的节点及其所有子节点。这样做好不好?如果没有,我该怎么办?
c++ - 如何使用 RapidXml for C++ 使用字符串在 xml_document 中插入新节点?
我想使用 RapidXml 将 src2 中的节点附加到 src 中的树内,我这样做:
好吧,它编译得很好,但是在运行时我遇到了这个可怕的错误:
void rapidxml::xml_node::append_node(rapidxml::xml_node*) [with Ch = char]: 断言 `child && !child->parent() && child->type() != node_document' 失败。中止
我不知道该怎么做。问题很简单,我需要将节点附加到树(xml),但我有字符串。
我想这是因为我试图将一棵树的一个节点插入另一棵树......只有为给定树分配的节点才能添加到该树......这很糟糕......
有没有一种方法可以让我以简单的方式做我需要的事情?
谢谢你。
c++ - Rapidxml 没有在 Visual Studio 2010 上编译。我做错了什么?
我正在我们的代码库中将 XML 解析器从 TinyXml 切换到 RapidXml。
但是,RapidXml 似乎无法与 Visual Studio 2010 一起编译。
基本上,在我正在做的头文件中
并且在实施中
就在那里,在我的第二行代码中,Visual Studio 说
c:\users\name\development\rapidxml\rapidxml.hpp(420):错误 C2061:语法错误:标识符“内存”
1> c:\users\name\development\rapidxml\rapidxml.hpp(418):编译时类模板成员函数 'rapidxml::xml_node<> *rapidxml::memory_pool::allocate_node(rapidxml::node_type,const Ch *,const Ch *,size_t,size_t)'
1> with
1> [
1> Ch=char
1 > ]
1> c:\users\name\development\rapidxml\rapidxml.hpp(1359) : 请参阅正在编译的类模板实例化 'rapidxml::memory_pool'
1> 与
1> [
1> Ch=char
1> ]
1> c:\users\name\development\xmlresource.cpp(70) : 请参阅正在编译的类模板实例化 'rapidxml::xml_document<>' 的引用
这是漫长的编码日的结束,这就是今天的内容。你们那里知识渊博的人知道我在这里做错了什么吗?
c++ - MSVC 中构建了奇怪的代码中断。这是什么意思?
我正在尝试将 rapidxml 包含到我当前的项目中。但是,它不会构建。
Visual Studio 会抱怨这段代码(rapidxml.hpp:419+451):
编译器会说
rapidxml.hpp(420):错误 C2061:语法错误:标识符“内存”
我有点明白这会如何混淆编译器。它实际上也让我很困惑。在那里做的(memory)
部分是new(memory) xml_attribute<Ch>
什么?
如果我删除那(memory)
部分,它编译就好了。
此外,gcc 可以很好地编译它(memory)
。
编辑:
哦,我超载new
了DEBUG_NEW
做一些内存调试。DEBUG_NEW
不支持放置新。