9 #include <xercesc/dom/DOM.hpp> 10 #include <xercesc/dom/DOMElement.hpp> 11 #include <xercesc/util/XMLString.hpp> 53 m_xmlString = xercesc::XMLString::replicate(_XMLCh);
61 operator XMLCh*()
const 70 char* szTmp = xercesc::XMLString::transcode(
m_xmlString);
73 std::string strRetVal(szTmp);
74 xercesc::XMLString::release(&szTmp);
110 smart_XMLCh xmlTmpStr(_element->getAttribute(attr_name));
111 std::istringstream str(xmlTmpStr.ToString());
127 smart_XMLCh xmlTmpStr(_element->getAttribute(attr_name));
128 std::string str(xmlTmpStr.ToString());
130 *_data = !(str.empty() || (
"false" == str));
146 inline xercesc::DOMNodeList*
GetNodesByName(
const _T* _Val,
const std::string& _NodeName);
153 inline xercesc::DOMNodeList*
GetNodesByName(
const xercesc::DOMNode* _ParentNode,
const std::string& _NodeName)
159 const xercesc::DOMElement* element(NULL);
160 if (xercesc::DOMNode::ELEMENT_NODE == _ParentNode->getNodeType())
162 if (xercesc::DOMNode::ELEMENT_NODE == _ParentNode->getNodeType())
163 element = dynamic_cast<const xercesc::DOMElement*>(_ParentNode);
168 return (element->getElementsByTagName(ElementName));
179 inline xercesc::DOMNode*
GetSingleNodeByName(
const xercesc::DOMDocument* _Doc,
const std::string& _NodeName)
185 const xercesc::DOMNodeList* list = _Doc->getElementsByTagName(ElementName);
188 return list->item(0);
201 const xercesc::DOMNodeList* list =
GetNodesByName(_node, _NodeName);
204 return list->item(0);
217 const std::string& _NodeName)
throw(std::exception)
221 throw(std::runtime_error(
"can't find XML element \"" + _NodeName +
"\""));
233 void get_node_value(
const xercesc::DOMNode* _parent_node,
const char* _node_name,
_T* _data)
238 xercesc::DOMNode* child(node->getFirstChild());
242 std::istringstream ss(xmlTmpStr.ToString());
260 xercesc::DOMNode* child(node->getFirstChild());
264 std::string str(xmlTmpStr.ToString());
266 *_data = !(str.empty() || (
"false" == str));
void get_node_value< bool >(const xercesc::DOMNode *_parent_node, const char *_node_name, bool *_data)
A specialization of the get_node_value template function with the bool type – xml value: true or fals...
Definition: XMLHelper.h:255
xercesc::DOMNode * GetSingleNodeByName_Ex(const _T *_Node, const std::string &_NodeName)
A helper template function, which wraps GetSingleNodeByName template-functions.
Definition: XMLHelper.h:216
smart-wrapper around XMLCh class
Definition: XMLHelper.h:35
smart_XMLCh(const XMLCh *const _XMLCh)
Definition: XMLHelper.h:50
_T & to_lower(_T &_str)
convert string to lower case.
Definition: MiscUtils.h:249
void get_node_value(const xercesc::DOMNode *_parent_node, const char *_node_name, _T *_data)
A template function, which helps to retrieve a value of xml node.
Definition: XMLHelper.h:233
bool operator==(const std::string &_Val1, const smart_XMLCh &_Val2)
Definition: XMLHelper.h:94
XMLCh * operator &()
Definition: XMLHelper.h:83
bool operator==(const std::string &_Val)
Definition: XMLHelper.h:78
xercesc::DOMNode * GetSingleNodeByName(const _T *_Val, const std::string &_NodeName)
Returns a Node by the given name. (basic template without implementation)
void get_attr_value< bool >(const xercesc::DOMElement *_element, const char *_attr, bool *_data)
A specialization of the get_attr_value template function with the bool type – xml value: true or fals...
Definition: XMLHelper.h:124
#define _T(s)
Use TCHAR instead of char or wchar_t. It will be appropriately translated.
Definition: def.h:85
void Release()
Definition: XMLHelper.h:88
XMLCh * m_xmlString
Definition: XMLHelper.h:38
smart_XMLCh(const char *_Str)
Definition: XMLHelper.h:45
smart_XMLCh()
Definition: XMLHelper.h:40
void get_attr_value(const xercesc::DOMElement *_element, const char *_attr, _T *_data)
A template function, which helps to retrieve different types of attributes from an XML file.
Definition: XMLHelper.h:107
std::string ToString() const
Definition: XMLHelper.h:66
xercesc::DOMNodeList * GetNodesByName(const _T *_Val, const std::string &_NodeName)
Miscellaneous functions and helpers are located here.
Definition: BOOST_FILESYSTEM.h:21
~smart_XMLCh()
Definition: XMLHelper.h:56