是否有任何方法可以使用c ++在快速xml中通过标记获取xml值

时间:2010-10-07 11:49:02

标签: c++ rapidxml

是否有任何方法可以使用c ++

在rapidxml中通过其标记名获取tag的值
<?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";

1 个答案:

答案 0 :(得分:1)

您应该能够使用要匹配的节点名称调用first_node。来自the docs

  

function 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

     

名称大小,in   字符,或0表示大小   从字符串

自动计算      

case_sensitive

     

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

     

返回

     

找到孩子的指针,否则为0   找到。

RapidXML不支持XPath用于更丰富的查询。