TinyXML is a simple, small, C++ XML parser that can be integrating into other programs. It is the standard XML parser for ROS. TinyXML is installed as a system dependency, meaning it is not a ROS package and requires some custom CMake code to compile against.
Contents
Using the system install version with Catkin
TinyXML does not install a FindTinyXML.cmake file on its own, instead a custom one must be provided. To save ROS developers time and centralize custom *.cmake modules commonly used in ROS, a new catkin package named [cmake_modules](https://github.com/ros/cmake_modules) has been created to aid in including these cmake files. The following steps will instruct you in how to easily use TinyXML with a custom CMake file in ROS.
#includes
To use the system dependency of tinyxml, add to your code:
#include <tinyxml.h>
CMakeLists.txt
The custom cmake file is included by depending on cmake_modules. Make sure you have cmake_modules and TinyXML including in the following places in your CMakeLists.txt:
# Load catkin and all dependencies required for this package find_package(catkin REQUIRED cmake_modules ... ) find_package(TinyXML REQUIRED) # Declare a catkin package catkin_package( LIBRARIES ... INCLUDE_DIRS include DEPENDS TinyXML ) # Build include_directories(include ${catkin_INCLUDE_DIRS} ${TinyXML_INCLUDE_DIRS})
Then for every library/executable that uses TinyXML, be sure to link libraries:
target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${TinyXML_LIBRARIES})
package.xml dependencies
Add to your package.xml:
<build_depend>tinyxml</build_depend> <build_depend>cmake_modules</build_depend> <run_depend>tinyxml</run_depend>
External Documentation
Please see the tinyxml website for documentation on using tinyxml.