3#include "storm-config.h"
4#ifdef STORM_HAVE_XERCES
6#include <xercesc/parsers/XercesDOMParser.hpp>
7#include <xercesc/util/XMLString.hpp>
9#include <xercesc/dom/DOM.hpp>
10#include <xercesc/sax/HandlerBase.hpp>
11#include <xercesc/util/PlatformUtils.hpp>
18inline std::string XMLtoString(
const XMLCh* xmlString) {
19 char* tmp = xercesc::XMLString::transcode(xmlString);
20 auto result = std::string(tmp);
25inline std::string getName(xercesc::DOMNode
const* node) {
26 switch (node->getNodeType()) {
27 case xercesc::DOMNode::NodeType::ELEMENT_NODE: {
28 auto elementNode = (xercesc::DOMElement*)node;
29 return XMLtoString(elementNode->getTagName());
31 case xercesc::DOMNode::NodeType::TEXT_NODE:
32 return XMLtoString(node->getNodeValue());
33 case xercesc::DOMNode::NodeType::ATTRIBUTE_NODE:
34 return XMLtoString(node->getNodeName());
36 STORM_LOG_THROW(
false, storm::exceptions::IllegalArgumentException,
"Unknown DOMNode type");
#define STORM_LOG_THROW(cond, exception, message)