61 int endComment(
long position,
long length)
const;
66 std::string
getTag(
int i)
const;
67 std::string
getStreamSection(
const std::streampos& start,
const std::streampos& end)
const;
68 void findChildElements(
int start, std::vector<int>& childIndices,
int& podIndex)
const;
84 using attrpair = std::pair<std::string, std::string>;
107 void getNextKeyVal(std::string& contentstr, std::string& key, std::string& val)
const;
126 void getAttribute(
const std::string& name, T& result)
const;
129 std::string
getAttribute(
const std::string& name)
const;
134 template<
typename T,
typename TT>
143 void getValue(std::vector<T>& result)
const;
151 int getChildIndex(
const std::string& name,
int strict = 0)
const;
158 template<
typename T,
typename TT>
171 XmlNode(std::istream* stream,
int start = 0,
bool deferValue =
false);
172 XmlNode(
const XmlStream& xstream, std::istream*
const stream,
int start,
bool deferValue =
false);
176 void write(std::ostream& os,
int indentLevel = 0)
const;
177 std::string
getString(
int indentLevel = 0)
const;
185 std::stringstream ss;
194 std::stringstream ss(value);
201 std::string sname(name);
212 std::stringstream ss(val);
217 std::stringstream ss(
value_);
224 std::stringstream ss;
238 result.push_back(temp);
246 std::stringstream ss;
251 template<
typename T,
typename TT>
254 std::stringstream ss1;
256 std::stringstream ss2;
265 std::stringstream ss;
280 template<
typename T,
typename TT>
void getNextKeyVal(std::string &contentstr, std::string &key, std::string &val) const
void handleTagString(const XmlStream &xs, int loc)
int startComment(long position, long length) const
int checkForPOD(const XmlElement &before, const XmlElement &after) const
std::vector< attrpair > attributes_
std::vector< XmlElement > elements
int getChildIndex(const std::string &name, int strict=0) const
size_t getPosNextLiveChar(const std::string &str, char c) const
std::string trimWhitespace(const std::string &str) const
std::string getName() const
std::string getValue() const
void addYesNoParameterChild(const T &n, int v)
void setValue(const T &v)
void setName(const T &val)
int getNumAttributes() const
std::string getInStr(int is) const
std::pair< std::string, std::string > attrpair
void addYesNoAttribute(const T &n, int i)
std::vector< XmlNode > children_
void write(std::ostream &os, int indentLevel=0) const
void createFromStream(const XmlStream &stream, int start=0, bool deferValue=true)
void findChildElements(int start, std::vector< int > &childIndices, int &podIndex) const
XmlNode & getChild(const std::string &name)
std::string getTagName(const std::string &tag, tagType type) const
void addAttribute(const T &n, const TT &v)
std::string getStreamSection(const std::streampos &start, const std::streampos &end) const
int endComment(long position, long length) const
std::string getTag(const XmlElement &e) const
std::string getString(int indentLevel=0) const
int getNumChildren() const
int getAttributeIndex(const std::string &name, int strict=0) const
std::string getAttributeName(int index) const
XmlElement(const XmlElement &e)
void getAttribute(const std::string &name, T &result) const
void readToString(std::string &s) const
void addParameterChild(const T &n, const TT &v)
XmlStream(std::istream *is)