![]() |
Public API Reference |
![]() |
Document system / XML helper classes. More...
Classes | |
struct | NodeAttributeCompare |
Node comparator. More... | |
struct | NodeAttributeRegexpTest |
Check if a regular expression matches(case-insensitive) with the value of the given attribute. More... | |
struct | NodeAttributeValueTest |
Compare (case-sensitive) node attribute to given. More... | |
struct | NodeNameCompare |
Node comparator. More... | |
struct | NodeValueTest |
Compare (case-sensitive) node value to given. More... | |
Functions | |
void | CloneAttributes (iDocumentNode *from, iDocumentNode *to) |
Copy the attributes of a node to another node. | |
void | CloneNode (iDocumentNode *from, iDocumentNode *to) |
Recursively clone a node with all its attributes and child-nodes. | |
template<class T > | |
csPtr< iDocumentNodeIterator > | FilterDocumentNodeIterator (csRef< iDocumentNodeIterator > parent, T filter) |
Get a filtering iDocumentNodeIterator. | |
csString | FlattenNode (iDocumentNode *node) |
"Flatten" a document node structure into a string, suitable for e.g. | |
csString | FlattenNodeShallow (iDocumentNode *node) |
"Flatten" a document node structure into a string ignoring child nodes, | |
csPtr< iDocument > | MakeChangeable (iDocument *doc, iDocumentSystem *docsys) |
Make a document changeable. | |
template<class T > | |
void | RemoveDuplicateChildren (iDocumentNode *rootNode, T eq) |
Remove duplicate child-nodes. | |
template<class T > | |
void | RemoveDuplicateChildren (iDocumentNode *rootNode, csRef< iDocumentNodeIterator > childIt, T eq) |
Remove duplicate child-nodes. | |
bool | SetContentsValue (iDocumentNode *node, const char *contents) |
Set the contents of a document node. |
Document system / XML helper classes.
void CS::DocSystem::CloneAttributes | ( | iDocumentNode * | from, |
iDocumentNode * | to | ||
) | [inline] |
Copy the attributes of a node to another node.
from | Source node |
to | Destination node |
Definition at line 181 of file documenthelper.h.
void CS::DocSystem::CloneNode | ( | iDocumentNode * | from, |
iDocumentNode * | to | ||
) | [inline] |
Recursively clone a node with all its attributes and child-nodes.
from | Source root node |
to | Destination root node |
Definition at line 196 of file documenthelper.h.
csPtr<iDocumentNodeIterator> CS::DocSystem::FilterDocumentNodeIterator | ( | csRef< iDocumentNodeIterator > | parent, |
T | filter | ||
) |
Get a filtering iDocumentNodeIterator.
Only nodes matching the filter are returned. Example usage:
DocumentHelper::NodeAttributeValueTest test ("name", "Marten"); csRef<iDocumentNodeIterator> it = FilterDocumentNodeIterator (node->GetNodes(), test); while (it->HasNext ()) { ... }
Definition at line 347 of file documenthelper.h.
csString CS::DocSystem::FlattenNode | ( | iDocumentNode * | node | ) |
"Flatten" a document node structure into a string, suitable for e.g.
hashing.
"Flatten" a document node structure into a string ignoring child nodes,
csPtr<iDocument> CS::DocSystem::MakeChangeable | ( | iDocument * | doc, |
iDocumentSystem * | docsys | ||
) |
Make a document changeable.
Not all documents can be changed in-place. This helper function checks the document doc and either returns the original document, if changeable, or a newly created, changeable document from docsys with the same contents as doc.
void CS::DocSystem::RemoveDuplicateChildren | ( | iDocumentNode * | rootNode, |
T | eq | ||
) |
Remove duplicate child-nodes.
The functor T is used to determine what should be seen as equal nodes. This is potentially an O(n^2) operation!
Definition at line 115 of file documenthelper.h.
void CS::DocSystem::RemoveDuplicateChildren | ( | iDocumentNode * | rootNode, |
csRef< iDocumentNodeIterator > | childIt, | ||
T | eq | ||
) |
Remove duplicate child-nodes.
The functor T is used to determine what should be seen as equal nodes. This is potentially an O(n^2) operation!
Definition at line 128 of file documenthelper.h.
bool CS::DocSystem::SetContentsValue | ( | iDocumentNode * | node, |
const char * | contents | ||
) |
Set the contents of a document node.
This is the converse of iDocumentNode::GetContentsValue(): if node has a child of type CS_NODE_TEXT, the value of that child is changed to contents. If no such node exists one is created. Returns false
if node couldn't be changed or a child created. (Typically if node was not of type CS_NODE_ELEMENT.)