36 using Ptr = std::shared_ptr<XML_Doc_Data>;
39 std::shared_ptr<rapidxml::xml_document<>>
doc;
44 const std::string& xmlData,
const std::string& pathToFile);
47 const std::string& pathToFile,
48 const std::map<std::string, std::string>& variables,
49 const std::set<std::string>& varsRetain = {});
59 const std::string& in,
const std::map<std::string, std::string>& variables,
60 const std::set<std::string>& varsRetain);
65 const std::map<std::string, std::string>& variableNamesValues = {},
66 const char* functionNameContext =
"");
75 const std::map<std::string, std::string>& variableNamesValues = {},
76 const char* functionNameContext =
"");
83 const std::map<std::string, std::string>& variableNamesValues = {},
84 const char* functionNameContext =
"",
85 mrpt::system::COutputLogger* logger =
nullptr);
87 template <
class NODE_LIST>
90 const char* functionNameContext =
"")
92 for (
auto& node : lst_nodes)
103 const std::string&
s,
bool allow_missing_angle =
false,
104 double default_angle_radians = 0.0,
105 const std::map<std::string, std::string>& variableNamesValues = {});
113 const char* functionNameContext =
"");
This file contains rapidxml parser and DOM implementation.
void parse_xmlnodelist_children_as_param(NODE_LIST &lst_nodes, const TParameterDefinitions ¶ms, const char *functionNameContext="")
std::map< std::string, TParamEntry > TParameterDefinitions
void parse_xmlnode_children_as_param(const rapidxml::xml_node< char > &xml_node, const TParameterDefinitions ¶ms, const std::map< std::string, std::string > &variableNamesValues={}, const char *functionNameContext="", mrpt::system::COutputLogger *logger=nullptr)
bool parse_xmlnode_as_param(const rapidxml::xml_node< char > &xml_node, const TParameterDefinitions ¶ms, const std::map< std::string, std::string > &variableNamesValues={}, const char *functionNameContext="")
void parse_xmlnode_attribs(const rapidxml::xml_node< char > &xml_node, const TParameterDefinitions ¶ms, const std::map< std::string, std::string > &variableNamesValues={}, const char *functionNameContext="")
std::shared_ptr< XML_Doc_Data > Ptr
std::tuple< XML_Doc_Data::Ptr, rapidxml::xml_node<> * > readXmlAndGetRoot(const std::string &pathToFile, const std::map< std::string, std::string > &variables, const std::set< std::string > &varsRetain={})
std::shared_ptr< rapidxml::xml_document<> > doc
std::string parse_variables(const std::string &in, const std::map< std::string, std::string > &variables, const std::set< std::string > &varsRetain)
void parse_xmlnode_shape(const rapidxml::xml_node< char > &xml_node, mrpt::math::TPolygon2D &out_poly, const char *functionNameContext="")
mrpt::math::TPose2D parseXYPHI(const std::string &s, bool allow_missing_angle=false, double default_angle_radians=0.0, const std::map< std::string, std::string > &variableNamesValues={})
std::tuple< std::shared_ptr< rapidxml::xml_document<> >, rapidxml::xml_node<> * > readXmlTextAndGetRoot(const std::string &xmlData, const std::string &pathToFile)