0

有什么方法可以使用 c++ 在 rapidxml 中通过其标记名获取标记的值

<?xml version=\1.0\ encoding=\latin-1\?>
<book>example</book>
<book1>example1</book1>

我需要获取账面价值,即示例和 book1 值....我们可以使用这个doc.first_node()->value() 获取第一个节点和下一个节点,但我需要有什么方法可以获取类似的值get by name

回答

xml_node<> *node = doc.first_node("book");
      cout <<< node->value() << "\n";
4

1 回答 1

2

您应该能够使用要匹配的节点名称调用 first_node 。从文档

函数 xml_node::first_node

概要

xml_node* first_node(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const; 描述

获取第一个子节点,可选择匹配节点名称。

参数

姓名

要查找的子项的名称,或 0 以返回第一个子项,无论其名称如何;如果 name_size 不为零,则此字符串不必以零结尾

name_size

名称的大小,以字符为单位,或 0 以从字符串自动计算大小

区分大小写

名称比较是否应该区分大小写;不区分大小写的比较仅适用于 ASCII 字符

退货

指向找到的孩子的指针,如果没有找到,则为 0。

RapidXML 不支持 XPath 来进行更丰富的查询。

于 2010-10-07T13:25:25.477 回答