4 #ifndef RUDIMENTS_DOMNODE_H 5 #define RUDIMENTS_DOMNODE_H 7 #include <rudiments/private/domnodeincludes.h> 13 ATTRIBUTE_DOMNODETYPE,
171 static domnode *createNullNode(dom *dom);
176 void cascadeOnDelete();
181 void dontCascadeOnDelete();
185 virtual domnodetype getType()
const;
188 virtual const char *getNamespace()
const;
191 virtual const char *getName()
const;
194 virtual const char *getValue()
const;
199 dom *getTree()
const;
203 virtual domnode *getParent()
const;
207 virtual uint64_t getPosition()
const;
211 virtual domnode *getPreviousSibling()
const;
216 domnode *getPreviousTagSibling()
const;
221 domnode *getPreviousTagSibling(
const char *name)
const;
226 domnode *getPreviousTagSibling(
const char *ns,
227 const char *name)
const;
232 domnode *getPreviousTagSiblingIgnoringCase(
233 const char *name)
const;
238 domnode *getPreviousTagSiblingIgnoringCase(
240 const char *name)
const;
251 domnode *getPreviousTagSibling(
253 const char *attributename,
254 const char *attributevalue)
const;
265 domnode *getPreviousTagSibling(
268 const char *attributename,
269 const char *attributevalue)
const;
279 domnode *getPreviousTagSiblingIgnoringCase(
281 const char *attributename,
282 const char *attributevalue)
const;
293 domnode *getPreviousTagSiblingIgnoringCase(
296 const char *attributename,
297 const char *attributevalue)
const;
301 virtual domnode *getNextSibling()
const;
306 domnode *getNextTagSibling()
const;
311 domnode *getNextTagSibling(
const char *name)
const;
316 domnode *getNextTagSibling(
const char *ns,
317 const char *name)
const;
322 domnode *getNextTagSiblingIgnoringCase(
323 const char *name)
const;
328 domnode *getNextTagSiblingIgnoringCase(
330 const char *name)
const;
343 const char *attributename,
344 const char *attributevalue)
const;
357 const char *attributename,
358 const char *attributevalue)
const;
368 domnode *getNextTagSiblingIgnoringCase(
370 const char *attributename,
371 const char *attributevalue)
const;
381 domnode *getNextTagSiblingIgnoringCase(
384 const char *attributename,
385 const char *attributevalue)
const;
391 domnode *getNextTagSiblingInSet(
392 const char *
const *
set)
const;
399 domnode *getNextTagSiblingInSet(
401 const char *
const *
set)
const;
405 virtual uint64_t getChildCount()
const;
409 virtual domnode *getFirstChild()
const;
413 domnode *getFirstChild(
const char *name)
const;
417 domnode *getFirstChild(
const char *ns,
418 const char *name)
const;
422 domnode *getFirstChildIgnoringCase(
423 const char *name)
const;
428 domnode *getFirstChildIgnoringCase(
430 const char *name)
const;
434 domnode *getChild(uint64_t position)
const;
444 domnode *getFirstChild(
const char *name,
445 const char *attributename,
446 const char *attributevalue)
457 domnode *getFirstChild(
const char *ns,
459 const char *attributename,
460 const char *attributevalue)
471 domnode *getFirstChildIgnoringCase(
473 const char *attributename,
474 const char *attributevalue)
484 domnode *getFirstChildIgnoringCase(
487 const char *attributename,
488 const char *attributevalue)
494 domnode *getFirstTagChild()
const;
499 domnode *getFirstTagChild(
const char *name)
const;
504 domnode *getFirstTagChild(
const char *ns,
505 const char *name)
const;
510 domnode *getFirstTagChildIgnoringCase(
511 const char *name)
const;
517 domnode *getFirstTagChildIgnoringCase(
519 const char *name)
const;
532 const char *attributename,
533 const char *attributevalue)
const;
545 const char *attributename,
546 const char *attributevalue)
const;
556 domnode *getFirstTagChildIgnoringCase(
558 const char *attributename,
559 const char *attributevalue)
const;
569 domnode *getFirstTagChildIgnoringCase(
572 const char *attributename,
573 const char *attributevalue)
const;
579 domnode *getFirstTagChildInSet(
580 const char *
const *
set)
const;
587 domnode *getFirstTagChildInSet(
589 const char *
const *
set)
const;
595 domnode *getFirstTagDescendent(
const char *name)
const;
601 domnode *getFirstTagDescendent(
603 const char *name)
const;
609 domnode *getFirstTagDescendentIgnoringCase(
610 const char *name)
const;
617 domnode *getFirstTagDescendentIgnoringCase(
619 const char *name)
const;
630 domnode *getFirstTagDescendent(
632 const char *attributename,
633 const char *attributevalue)
const;
642 domnode *getFirstTagDescendent(
645 const char *attributename,
646 const char *attributevalue)
const;
656 domnode *getFirstTagDescendentIgnoringCase(
658 const char *attributename,
659 const char *attributevalue)
const;
669 domnode *getFirstTagDescendentIgnoringCase(
672 const char *attributename,
673 const char *attributevalue)
const;
679 domnode *getFirstTagDescendentInSet(
680 const char *
const *
set)
const;
686 domnode *getFirstTagDescendentInSet(
688 const char *
const *
set)
const;
703 domnode *getPreviousTag()
const;
714 virtual uint64_t getAttributeCount()
const;
718 virtual domnode *getAttribute(
const char *name)
const;
722 virtual domnode *getAttributeIgnoringCase(
723 const char *name)
const;
727 virtual domnode *getAttribute(uint64_t position)
const;
731 const char *getAttributeValue(
const char *name)
const;
736 const char *getAttributeValue(uint64_t position)
const;
745 constnamevaluepairs *getAttributes()
const;
750 void setAttributeValue(
const char *name,
const char *value);
755 void setAttributeValue(
const char *name, int64_t value);
760 void setAttributeValue(
const char *name, uint64_t value);
767 virtual bool isNullNode()
const;
771 virtual void setType(domnodetype type);
774 virtual void setNamespace(
const char *ns);
777 virtual void setName(
const char *name);
780 void setName(
const char *ns,
const char *name);
783 virtual void setValue(
const char *value);
786 virtual void setParent(
domnode *parent);
789 virtual void setPreviousSibling(
domnode *previous);
792 virtual void setNextSibling(
domnode *next);
797 bool insertChild(
domnode *child, uint64_t position);
800 bool appendChild(
domnode *child);
809 domnode *insertTag(
const char *tag, uint64_t position);
818 domnode *insertTag(
const char *ns,
827 domnode *appendTag(
const char *tag);
834 domnode *appendTag(
const char *ns,
const char *tag);
842 domnode *parent, uint64_t position);
847 bool deleteChild(uint64_t position);
854 bool deleteChild(
domnode *child);
859 bool deleteFirstChild(
const char *name);
864 bool deleteFirstChild(
const char *ns,
const char *name);
869 bool deleteFirstChildIgnoringCase(
const char *name);
874 bool deleteFirstChildIgnoringCase(
const char *ns,
886 bool deleteFirstChild(
const char *name,
887 const char *attributename,
888 const char *attributevalue);
899 bool deleteFirstChild(
const char *ns,
901 const char *attributename,
902 const char *attributevalue);
912 bool deleteFirstChildIgnoringCase(
914 const char *attributename,
915 const char *attributevalue);
925 bool deleteFirstChildIgnoringCase(
928 const char *attributename,
929 const char *attributevalue);
932 bool deleteChildren();
935 bool deleteChildren(
const char *name);
939 bool deleteChildren(
const char *ns,
const char *name);
942 bool deleteChildrenIgnoringCase(
const char *name);
946 bool deleteChildrenIgnoringCase(
const char *ns,
958 bool deleteChildren(
const char *name,
959 const char *attributename,
960 const char *attributevalue);
971 bool deleteChildren(
const char *ns,
973 const char *attributename,
974 const char *attributevalue);
984 bool deleteChildrenIgnoringCase(
986 const char *attributename,
987 const char *attributevalue);
997 bool deleteChildrenIgnoringCase(
1000 const char *attributename,
1001 const char *attributevalue);
1004 bool deleteDescendents(
const char *name);
1008 bool deleteDescendents(
const char *ns,
1012 bool deleteDescendentsIgnoringCase(
const char *name);
1016 bool deleteDescendentsIgnoringCase(
const char *ns,
1028 bool deleteDescendents(
const char *name,
1029 const char *attributename,
1030 const char *attributevalue);
1041 bool deleteDescendents(
const char *ns,
1043 const char *attributename,
1044 const char *attributevalue);
1054 bool deleteDescendentsIgnoringCase(
1056 const char *attributename,
1057 const char *attributevalue);
1067 bool deleteDescendentsIgnoringCase(
1070 const char *attributename,
1071 const char *attributevalue);
1076 bool renameFirstChild(
const char *oldname,
1077 const char *newname);
1082 bool renameFirstChild(
const char *oldns,
1083 const char *oldname,
1085 const char *newname);
1089 bool renameFirstChildIgnoringCase(
const char *oldname,
1090 const char *newname);
1095 bool renameFirstChildIgnoringCase(
const char *oldns,
1096 const char *oldname,
1098 const char *newname);
1102 bool renameChildren(
const char *oldname,
1103 const char *newname);
1107 bool renameChildren(
const char *oldns,
1108 const char *oldname,
1110 const char *newname);
1114 bool renameChildrenIgnoringCase(
const char *oldname,
1115 const char *newname);
1120 bool renameChildrenIgnoringCase(
const char *oldns,
1121 const char *oldname,
1123 const char *newname);
1127 bool renameDescendents(
const char *oldname,
1128 const char *newname);
1132 bool renameDescendents(
const char *oldns,
1133 const char *oldname,
1135 const char *newname);
1139 bool renameDescendentsIgnoringCase(
1140 const char *oldname,
1141 const char *newname);
1146 bool renameDescendentsIgnoringCase(
1148 const char *oldname,
1150 const char *newname);
1157 bool insertText(
const char *value, uint64_t position);
1161 bool appendText(
const char *value);
1166 bool insertAttribute(
domnode *attribute,
1170 bool appendAttribute(
domnode *attribute);
1176 bool insertAttribute(
const char *name,
const char *value,
1181 bool appendAttribute(
const char *name,
const char *value);
1186 bool deleteAttribute(uint64_t position);
1192 bool deleteAttribute(
const char *name);
1197 bool deleteAttribute(
domnode *attribute);
1205 bool unwrapChild(
domnode *child);
1209 bool unwrapFirstChild(
const char *name);
1213 bool unwrapFirstChild(
const char *ns,
const char *name);
1217 bool unwrapFirstChildIgnoringCase(
const char *name);
1222 bool unwrapFirstChildIgnoringCase(
const char *ns,
1227 bool unwrapChildren(
const char *name);
1231 bool unwrapChildren(
const char *ns,
const char *name);
1235 bool unwrapChildrenIgnoringCase(
const char *name);
1240 bool unwrapChildrenIgnoringCase(
const char *ns,
1245 bool unwrapDescendents(
const char *name);
1249 bool unwrapDescendents(
const char *ns,
const char *name);
1253 bool unwrapDescendentsIgnoringCase(
const char *name);
1258 bool unwrapDescendentsIgnoringCase(
const char *ns,
1308 domnode *wrapChildren(
const char *name);
1313 domnode *wrapChildren(
const char *ns,
const char *name);
1322 virtual domnode *clone(dom *dom);
1329 void write(
output *out)
const;
1339 void write(
output *out,
bool indent)
const;
1358 domnode *getChildByPath(
const char *path)
const;
1368 domnode *getAttributeByPath(
const char *path,
1369 uint64_t position)
const;
1378 domnode *getAttributeByPath(
const char *path,
1379 const char *name)
const;
1389 const char *getAttributeValueByPath(
const char *path,
1390 uint64_t position)
const;
1400 const char *getAttributeValueByPath(
const char *path,
1401 const char *name)
const;
1404 void setData(
void *data);
1410 #include <rudiments/private/domnode.h>
Definition: stringbuffer.h:13
Definition: domnode.h:122