我已经解析了来自 Kuka Robot 的 XML rsi 数据并将其用于将 Robot 与 Controller 连接。我需要知道在 boost c++ 库中用于此解析的 XML 解析器是什么?
3 回答
如果有人问这个问题,供将来参考:
促进
Boost 应该是一个通用库,因此解析 XML 并不是它最重要的特性。然而,正如建议的那样,PropertyTree 在 Boost 中有一个教程,用于一般树结构数据格式(例如 json 或 XML)。
XML
话虽如此,我一般不建议使用 boost 来解析 XML 结构。您可以再次使用建议的几个小型库,这些库专门开发用于高效和快速地解析 XML 字符串,再次建议我应该在 C++ 中使用什么 XML 解析器?.
KUKA(RSI)的机器人传感器接口
不要试图重新发明轮子。甚至还有用于解析 RSI 的 XML 结构的库。ROS Industrial 已经在此处和ROS 网站上kuka_experimental
提供了一个非常好的 RSI 接口,称为包。这不仅满足了你对XML解析的需求,还满足了通过UDP通信、运动学模型等控制机器人的需求。如果你对它不满意,你可以在阅读代码并了解它的工作原理后开发自己的。
这个包使用 TinyXML,这是一个轻量级的 XML 库,在我看来它非常快速且易于使用。有关如何完成解析的文件可在kuka_rsi_hw_interface
此处找到。如果您对此不满意,您仍然可以使用另一个 XML 库,甚至升级此包以使用TinyXML2,它应该在内存使用方面更加高效且速度更快。如果您使用 CMake 构建系统,您可以轻松地将 TinyXML 作为子模块添加到您的包中。
答案是,不,没有 XML 解析器,更不用说特定的 KUKA RSI 格式了。
您可以使用 RapidXML(它是 Boost Property Tree 的 XML 后端的基础)。我个人最喜欢的小任务是 PugiXML。您应该在这里观看决策建议:
我不知道 KUKA RSI 格式,但是您可以使用 boost 中的 PropertyLibrary 读取和写入 XML 格式的数据。
看这里: http: //www.boost.org/doc/libs/1_65_1/doc/html/property_tree.html