1#ifndef RAPIDXML_UTILS_HPP_INCLUDED
2#define RAPIDXML_UTILS_HPP_INCLUDED
20 template <
class Ch =
char>
class file
31 basic_ifstream<Ch> stream(filename, ios::binary);
33 throw runtime_error(std::string(
"cannot open file ") + filename);
34 stream.unsetf(ios::skipws);
37 stream.seekg(0, ios::end);
38 size_t size = stream.tellg();
43 stream.read(&
m_data.front(),
static_cast<streamsize
>(
size));
49 file(std::basic_istream<Ch>& stream)
54 stream.unsetf(ios::skipws);
55 m_data.assign(istreambuf_iterator<Ch>(stream), istreambuf_iterator<Ch>());
56 if (stream.fail() || stream.bad())
57 throw runtime_error(
"error reading stream");
91 std::size_t
count = 0;
105 std::size_t
count = 0;
Represents data loaded from a file.
Definition rapidxml_utils.hpp:21
std::vector< Ch > m_data
Definition rapidxml_utils.hpp:83
file(std::basic_istream< Ch > &stream)
Definition rapidxml_utils.hpp:49
std::size_t size() const
Definition rapidxml_utils.hpp:77
const Ch * data() const
Definition rapidxml_utils.hpp:70
Ch * data()
Definition rapidxml_utils.hpp:63
file(const char *filename)
Definition rapidxml_utils.hpp:26
Definition rapidxml.hpp:784
xml_attribute< Ch > * next_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition rapidxml.hpp:845
Definition rapidxml.hpp:882
xml_attribute< Ch > * first_attribute(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition rapidxml.hpp:1017
xml_node< Ch > * next_sibling(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition rapidxml.hpp:995
xml_node< Ch > * first_node(const Ch *name=0, std::size_t name_size=0, bool case_sensitive=true) const
Definition rapidxml.hpp:924
constexpr auto count() -> size_t
Definition core.h:1538
Definition rapidxml.hpp:62
std::size_t count_children(xml_node< Ch > *node)
Definition rapidxml_utils.hpp:88
std::size_t count_attributes(xml_node< Ch > *node)
Definition rapidxml_utils.hpp:102
This file contains rapidxml parser and DOM implementation.