- std::string getProperty(xmlNodePtr theNode, const char* property);
- /*
- * Please note that this function should be called with NULL last argument.
- * In example: isNode(aNode, "type1", ["type2", ...], NULL);
- * ", NULL" is required to use unlimited number of arguments.
- * TODO(sbh): find a way to simplify calling this method.
- */
- bool isNode(xmlNodePtr theNode, const char* name, ...);
-
-protected:
- std::string myDocumentPath;
- xmlDocPtr myXmlDoc;
+ /// Gets xml node name
+ std::string getNodeName(xmlNodePtr theNode);
+ /// Stores an attribute in internal map for later use.
+ /// Key is "Node_Name:Node_Attribute" and value is getProperty(theNodeAttribute)
+ void storeAttribute(xmlNodePtr theNode, const char* theNodeAttribute, bool doClean = false);
+ /// Restores an attribute from internal map.
+ std::string restoreAttribute(xmlNodePtr theNode, const char* theNodeAttribute);
+ /// Restores an attribute from internal map.
+ std::string restoreAttribute(const char* theNodeName, const char* theNodeAttribute);
+ /// Cleanups attribute from cache
+ bool cleanupAttribute(xmlNodePtr theNode, const char* theNodeAttribute);
+ /// Cleanups attribute from cache
+ bool cleanupAttribute(const char* theNodeName, const char* theNodeAttribute);
+
+ protected:
+ std::string myDocumentPath; ///< Path to the xml document
+ xmlDocPtr myXmlDoc; ///< Root of the xml document
+ /// A map to store all parent's attributes.
+ /// The key has from "Node_Name:Node_Attribute"
+ std::map<std::string, std::string> myCachedAttributes;