host/AzureRecoveryLib/config/LibXmlUtil.h (34 lines of code) (raw):
/*
+------------------------------------------------------------------------------------+
Copyright(c) Microsoft Corp. 2015
+------------------------------------------------------------------------------------+
File : LibXmlUtil.h
Description : LibXmlUtil is a wrapper around LibXml C functions, the LibXmlUtil helper
function makes it easy to access/get the xml nodes and its properties.
History : 7-5-2015 (Venu Sivanadham) - Created
+------------------------------------------------------------------------------------+
*/
#ifndef AZURE_RECOVERY_HOST_INFO_XML_UTIL_H
#define AZURE_RECOVERY_HOST_INFO_XML_UTIL_H
#include <libxml/parser.h>
#include <libxml/tree.h>
#include <string>
namespace AzureRecovery
{
struct LibXmlUtil
{
static xmlNodePtr xGetChildEleNode(xmlNodePtr node);
static xmlNodePtr xGetNextEleNode(xmlNodePtr node);
static std::string xGetProp(xmlNodePtr node, const std::string & prop_name);
static xmlNodePtr xGetChildNodeWithName(xmlNodePtr node, const std::string& child_node_name);
static xmlNodePtr xGetNextNodeWithName(xmlNodePtr node, const std::string& next_node_name);
static xmlNodePtr xGetNextParam(xmlNodePtr node);
static xmlNodePtr xGetNextParamGrp(xmlNodePtr node);
static xmlNodePtr xGetNextParamGrpWithId(xmlNodePtr node, const std::string& id, bool nCmp = false);
static xmlNodePtr xGetChildParamGrpWithId(xmlNodePtr node, const std::string& id, bool nCmp = false);
static void xGetParamNode_Name_Value_Attrs(xmlNodePtr node, std::string& Name, std::string& Value);
static std::string xGetParamGrp_Id(xmlNodePtr node);
};
struct XmlDoccument
{
private:
xmlDocPtr m_doc;
xmlNodePtr m_root_node;
public:
explicit XmlDoccument(const std::string &root_node_name);
void xAddChild(const std::string &child_node_name, const std::string &child_node_val);
void xGetXmlDoc(xmlChar* &docstr, int &len) const;
~XmlDoccument();
};
}
#endif//~AZURE_RECOVERY_HOST_INFO_XML_UTIL_H