\r
/** The texts in the XML document */\r
TextCollection *Text;\r
+ /** The texts in the XML document (cached for faster display) */\r
+ vector<string> CachedText;\r
\r
/** Flag indicating whether the whole data structure has been constructed or \r
* not. If the value is true, you cannot add more texts, nodes, etc. */\r
* preorder than x and not in the subtree of x. Returns NULLT if there \r
* is none. */\r
treeNode TaggedFoll(treeNode x, TagType tag);\r
- \r
+ \r
+ /** TaggedFollowingSibling(x,tag) */\r
+ treeNode TaggedFollowingSibling(treeNode x, TagType tag);\r
+\r
+ /** TaggedAncestor(x, tag): returns the closest ancestor of x tagged \r
+ * tag. Return NULLT is there is none. */\r
+ treeNode TaggedAncestor(treeNode x, TagType tag);\r
+ \r
/** PrevText(x): returns the document identifier of the text to the left of \r
* node x, or NULLT if x is the root node. */\r
DocID PrevText(treeNode x);\r
uchar* GetText(DocID d) {\r
return Text->GetText(d);\r
}\r
+\r
+ uchar* GetCachedText(DocID d) {\r
+ uchar * str = (uchar*) calloc(sizeof(char),(CachedText.at(d).size() + 1)); \r
+ return (uchar*) (str);\r
+ }\r
\r
TextCollection *getTextCollection() {\r
return Text;\r