33void xmlCheckParse(
const pugi::xml_parse_result &result,
const std::string name)
37 std::cerr <<
"XML parsing error for " << name << std::endl;
38 std::cerr <<
"XML error description: " << result.description() << std::endl;
39 std::cerr <<
"XML error offset : " << result.offset << std::endl;
47 if ( toplev == std::string(
"") ) {
51 node_.set_name(toplev.c_str());
69 pugi::xml_document doc;
70 auto result = doc.load_buffer(s.c_str(), s.size());
73 for (pugi::xml_node child = doc.first_child(); child; child = child.next_sibling())
87 std::ostringstream oss;
94 std::ostringstream oss;
95 doc_.save(oss,
indent_.c_str(), pugi::format_default | pugi::format_no_declaration);
103 pugi::xml_parse_result result;
108 result =
doc_.load_string(s.c_str());
114 result =
doc_.load_file(s.c_str());
117 if ( toplev == std::string(
"") ) {
124#define XML_SAFE_NODE(expr)\
166 std::ostringstream oss;
167 pugi::xml_document doc;
169 doc.append_copy(
node_);
170 doc.save(oss,
indent_.c_str(), pugi::format_default | pugi::format_no_declaration);
177 if (
node_.child(s.c_str()))
179 output =
node_.child(s.c_str()).first_child().value();
183 std::cout <<
GridLogWarning <<
"XML: cannot open node '" << s <<
"'";
184 std::cout << std::endl;
GridLogger GridLogWarning(1, "Warning", GridLogColours, "YELLOW")
#define NAMESPACE_BEGIN(A)
void xmlCheckParse(const pugi::xml_parse_result &result, const std::string name)
#define XML_SAFE_NODE(expr)
XmlReader(const std::string &fileName, const bool isBuffer=false, std::string toplev=std::string("grid"))
bool push(const std::string &s="")
void readCurrentSubtree(std::string &s)
void readDefault(const std::string &s, U &output)
const std::string indent_
bool nextElement(const std::string &s="")
std::string docString(void)
XmlWriter(const std::string &fileName, std::string toplev=std::string("grid"))
void pushXmlString(const std::string &s)
void push(const std::string &s)
const std::string indent_
void xmlCheckParse(const pugi::xml_parse_result &result, const std::string name)