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