79 class XPathVariableSet;
83 class AttributeIterator;
84 class NamedNodeIterator;
103 typedef void (*unspecified_bool_type)(
Node***);
115 explicit Node(NodeStruct* p);
121 operator unspecified_bool_type()
const;
127 bool operator!()
const;
129 #if !(defined(SWIG) && defined(MEZZLUA51)) // Stop Swig from making lua bindings but allow other languages
135 bool operator==(
const Node& r)
const;
142 bool operator!=(
const Node& r)
const;
148 bool operator<(
const Node& r)
const;
154 bool operator>(
const Node& r)
const;
160 bool operator<=(
const Node& r)
const;
166 bool operator>=(
const Node& r)
const;
179 const Char8* Name()
const;
184 const Char8* Value()
const;
196 Node GetFirstChild()
const;
200 Node GetLastChild()
const;
205 Node GetNextSibling()
const;
210 Node GetPreviousSibling()
const;
214 Node GetParent()
const;
218 Node GetRoot()
const;
224 #if !(defined(SWIG) && defined(MEZZLUA51)) // Stop Swig from making lua bindings but allow other languages
236 {
return GetChild(Name.c_str()); }
246 Node GetNextSibling(
const Char8* Name)
const;
251 Node GetPreviousSibling(
const Char8* Name)
const;
256 const Char8* GetChildValue()
const;
261 const Char8* GetChildValue(
const Char8* Name)
const;
268 bool SetName(
const Char8* rhs);
275 {
return SetName(rhs.c_str()); }
282 bool SetValue(
const Char8* rhs);
284 #if !(defined(SWIG) && defined(MEZZLUA51)) // Stop Swig from making lua bindings but allow other languages
299 {
return AppendAttribute(Name.c_str()); }
386 #if !(defined(SWIG) && defined(MEZZLUA51)) // Stop Swig from making lua bindings but allow other languages
400 {
return AppendChild(Name.c_str()); }
402 #if !(defined(SWIG) && defined(MEZZLUA51)) // Stop Swig from making lua bindings but allow other languages
416 {
return PrependChild(Name.c_str()); }
440 Node PrependCopy(
const Node& proto);
446 Node InsertCopyAfter(
const Node& proto,
const Node& node);
452 Node InsertCopyBefore(
const Node& proto,
const Node& node);
457 bool RemoveAttribute(
const Attribute& a);
462 bool RemoveAttribute(
const Char8* Name);
467 bool RemoveChild(
const Node& n);
472 bool RemoveChild(
const Char8* Name);
500 if (!NodeData)
return Node();
518 if (!NodeData)
return Node();
520 Node cur = GetFirstChild();
523 if (pred(cur))
return cur;
544 Node FindChildbyAttribute(
const Char8* Name,
const Char8* AttrName,
const Char8* AttrValue)
const;
551 Node FindChildbyAttribute(
const Char8* AttrName,
const Char8* AttrValue)
const;
563 Node FirstElementByPath(
const Char8* Path,
Char8 delimiter =
'/')
const;
613 void Print(std::basic_ostream<
char, std::char_traits<char> >& os,
const Char8* indent =
"\t",
unsigned int flags =
FormatDefault,
Encoding DocumentEncoding =
EncodingAuto,
unsigned int Depth = 0)
const;
622 void Print(std::basic_ostream<
wchar_t, std::char_traits<wchar_t> >& os,
const Char8* indent =
"\t",
unsigned int flags =
FormatDefault,
unsigned int Depth = 0)
const;
663 ptrdiff_t OffSetDebug()
const;
668 size_t HashValue()
const;
673 NodeStruct* InternalObject()
const;
680 #endif // Include guard