问题描述
我已经开始学习如何使用 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 (将#修改为@)