使用 Rapidxml 迭代不同的节点

问题描述

我已经开始学习如何使用 Rapidxml lib 解析 xml 文件,我正在努力寻找一种在不同节点上迭代的方法。所有解析器教程都使用静态 xml 文件(相同的节点名称)。 在我的示例中,我想检查“ota_service”、“mqtt_service”等的布尔条件。我想使用这些条件来启用或禁用相应的服务。

你知道迭代每个节点的方法吗?

XML:

-<set>


-<OTA_service enabled="true">

<url>192.168.1.1</url>

<port>3501</port>

</OTA_service>


-<MQTT_service enabled="true">

<url>192.168.1.2</url>

<port>3502</port>

<md5>123456</md5>

</MQTT_service>


-<Logging_service enabled="false">

<url>192.168.1.3</url>

<port>3502</port>

</Logging_service>


-<MQTT_temperature enabled="true">

<max_value>45</max_value>

</MQTT_temperature>

</set>

这是我的代码

 for (xml_node<>* student_node = root_node->first_node("OTA_service"); student_node; student_node = student_node->next_sibling())
        {


            cout << "OTA service is " << student_node->first_attribute("enabled")->value();
            cout << endl;

            cout << endl;
        }

以上代码遍历父节点并返回所有属性值:

OTA service is true

OTA service is true

OTA service is false

OTA service is true

我想先在 ota_service 上迭代检查布尔值,检查所有子属性,然后移动到第二个节点(mqtt_server)等等。

谢谢,

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...