rapidxml 解析数组字段

本文介绍使用rapidxml库解析XML文件的过程,并提供了一段示例代码来演示如何读取XML文件的内容及节点信息。文章指出rapidxml文档较少,但通过一个具体的例子展示了如何遍历XML节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C++ xml解析库很多,比如tinyxml,cmarkup,rapidxml 等等。其实都挺好用的。可能效率不一样,
据说rapidxml 效率高很多,就用了一下。还有个rapidjson解析json的,也挺快的。
rapidxml的文档很少,就一个manual.html.,我得吐槽一下,是在是太简单了。我要解析一个数组,查了半天都没有。
最终找到一个parent方法回到父节点,奇葩的是manual.html 没有显示此方法。
file.xml:

<root>
<file>
<filepath>123</filepath>
</file>
<file>
<filepath>123</filepath>
</file>
<file>
<filepath>123</filepath>
</file>
</root>

解析代码:

rapidxml::file<> fdoc("file.xml");
    std::cout<<fdoc.data()<<std::endl;
    rapidxml::xml_document<> doc;
    doc.parse<0>(fdoc.data());
    std::cout<<doc.name()<<std::endl;
    //! 获取根节点
    rapidxml::xml_node<>* root = doc.first_node();
    std::cout<<root->name()<<std::endl;
    //! 获取根节点第一个节点
    rapidxml::xml_node<>* node;
    for(node = root->first_node();node != NULL; node = node->next_sibling()){
        node = root->first_node();
        std::cout<<node->name()<<":"<<node->value()<<std::endl;
        node = node->parent();//!!!
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值