62 #include "rnr/tinyxml/tinyxml.h" 64 #include "rnr/rnrconfig.h" 73 const char*
const XmlDecl =
"<?xml version=\"1.0\" encoding=\"utf-8\"?>";
77 "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"";
79 const char*
const XslDecl =
80 "<xsl:stylesheet version=\"1.0\" " 81 "xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\">";
109 Xml(
const std::string &strRootElem,
110 const std::string &strXsiUrl=
"",
111 const std::string &strXslUrl=
"");
130 virtual int loadFile(
const std::string &strXmlFileName);
139 virtual int saveFile(
const std::string &strXmlFileName);
154 const std::string &strMajorElemName);
164 bool fileExists(
const std::string &strXmlFileName,
bool bRequired=
false);
245 TiXmlElement *
getMajorElem(
const std::string &strMajorElemName);
260 std::string
elemText(TiXmlElement *pElem);
269 std::string
elemAttr(TiXmlElement *pElem,
const std::string &strAttrName);
284 int strToInt(
const std::string &str,
int &val);
295 int intToStr(
const int val, std::string &str,
int base=10);
305 int strToDouble(
const std::string &str,
double &val);
315 int doubleToStr(
const double val, std::string &str);
const char *const XmlNsXsi
bool isModified()
Check if DOM has been modified since last save.
std::string getFileName()
Get last load/save/create XML file name.
virtual int loadFile(const std::string &strXmlFileName)
Load XML file into DOM.
virtual void makeXmlHead()
Make XML document head string.
std::string getErrorMsg()
Get last error message.
int intToStr(const int val, std::string &str, int base=10)
Convert integer to string.
std::string m_strXmlTail
xml document tail
std::string m_strXsiUrl
xml schema instance
virtual int saveFile(const std::string &strXmlFileName)
Save DOM to XML file.
char m_bufErrMsg[256]
error message buffer
void setStylesheet(const std::string &strXslUrl)
Set XML Extended Style Sheet.
TiXmlDocument m_xmlDoc
parsed xml DOM
std::string m_strXmlFileName
xml file path name
std::string elemText(TiXmlElement *pElem)
Get element's text.
virtual int createTemplateFile(const std::string &strXmlFileName, const std::string &strMajorElemName)
Create XML file with the given major element name under the root element.
std::string m_strRootElemName
xml top-level root element name
std::string elemAttr(TiXmlElement *pElem, const std::string &strAttrName)
Get element's attribute value.
int strToDouble(const std::string &str, double &val)
Convert string to double-precision floating-point number.
void setSchemaInstance(const std::string &strXsiUrl)
Set XML document schema instance.
std::string m_strXslUrl
xml style sheet
void setErrorMsg(const char *sFmt,...)
Set XML error message.
Xml(const std::string &strRootElem, const std::string &strXsiUrl="", const std::string &strXslUrl="")
Initialization constructor.
virtual ~Xml()
Destructor.
bool fileExists(const std::string &strXmlFileName, bool bRequired=false)
Check that the XML file exists and has read/write access.
virtual void makeXmlTail()
Make XML document tail string.
bool m_bModified
xml [not] modified
void setModifiedState(bool bModified)
Set DOM modified state.
std::string m_strXmlHead
xml document head
TiXmlElement * m_pElemRoot
top-level root element
int doubleToStr(const double val, std::string &str)
Convert double to string.
TiXmlElement * getMajorElem(const std::string &strMajorElemName)
Get the major element in the DOM.
int strToInt(const std::string &str, int &val)
Convert string to integer.
const char *const XmlDecl