Synopsis
enum xmlSecNodeSetType;
enum xmlSecNodeSetOp;
struct xmlSecNodeSet;
int (*xmlSecNodeSetWalkCallback) (xmlSecNodeSetPtr nset,
xmlNodePtr cur,
xmlNodePtr parent,
void *data);
xmlSecNodeSetPtr xmlSecNodeSetCreate (xmlDocPtr doc,
xmlNodeSetPtr nodes,
xmlSecNodeSetType type);
void xmlSecNodeSetDestroy (xmlSecNodeSetPtr nset);
void xmlSecNodeSetDocDestroy (xmlSecNodeSetPtr nset);
int xmlSecNodeSetContains (xmlSecNodeSetPtr nset,
xmlNodePtr node,
xmlNodePtr parent);
xmlSecNodeSetPtr xmlSecNodeSetAdd (xmlSecNodeSetPtr nset,
xmlSecNodeSetPtr newNSet,
xmlSecNodeSetOp op);
xmlSecNodeSetPtr xmlSecNodeSetAddList (xmlSecNodeSetPtr nset,
xmlSecNodeSetPtr newNSet,
xmlSecNodeSetOp op);
xmlSecNodeSetPtr xmlSecNodeSetGetChildren (xmlDocPtr doc,
const xmlNodePtr parent,
int withComments,
int invert);
int xmlSecNodeSetWalk (xmlSecNodeSetPtr nset,
xmlSecNodeSetWalkCallback walkFunc,
void *data);
int xmlSecNodeSetDumpTextNodes (xmlSecNodeSetPtr nset,
xmlOutputBufferPtr out);
void xmlSecNodeSetDebugDump (xmlSecNodeSetPtr nset,
FILE *output);
Details
enum xmlSecNodeSetType
typedef enum {
xmlSecNodeSetNormal = 0,
xmlSecNodeSetInvert,
xmlSecNodeSetTree,
xmlSecNodeSetTreeWithoutComments,
xmlSecNodeSetTreeInvert,
xmlSecNodeSetTreeWithoutCommentsInvert,
xmlSecNodeSetList
} xmlSecNodeSetType;
The basic nodes sets types.
enum xmlSecNodeSetOp
typedef enum {
xmlSecNodeSetIntersection = 0,
xmlSecNodeSetSubtraction,
xmlSecNodeSetUnion
} xmlSecNodeSetOp;
The simple nodes sets operations.
struct xmlSecNodeSet
struct xmlSecNodeSet {
xmlNodeSetPtr nodes;
xmlDocPtr doc;
int destroyDoc;
xmlSecNodeSetType type;
xmlSecNodeSetOp op;
xmlSecNodeSetPtr next;
xmlSecNodeSetPtr prev;
xmlSecNodeSetPtr children;
};
The enchanced nodes set.
xmlSecNodeSetWalkCallback ()
int (*xmlSecNodeSetWalkCallback) (xmlSecNodeSetPtr nset,
xmlNodePtr cur,
xmlNodePtr parent,
void *data);
The callback function called once per each node in the nodes set.
nset : |
the pointer to xmlSecNodeSet structure. |
cur : |
the pointer current XML node. |
parent : |
the pointer to the cur parent node. |
data : |
the pointer to application specific data. |
Returns : |
0 on success or a negative value if an error occurs
an walk procedure should be interrupted. |
xmlSecNodeSetCreate ()
xmlSecNodeSetPtr xmlSecNodeSetCreate (xmlDocPtr doc,
xmlNodeSetPtr nodes,
xmlSecNodeSetType type);
Creates new nodes set. Caller is responsible for freeing returned object
by calling xmlSecNodeSetDestroy function.
doc : |
the pointer to parent XML document. |
nodes : |
the list of nodes. |
type : |
the nodes set type. |
Returns : |
pointer to newly allocated node set or NULL if an error occurs. |
xmlSecNodeSetDocDestroy ()
void xmlSecNodeSetDocDestroy (xmlSecNodeSetPtr nset);
Instructs node set to destroy nodes parent doc when node set is destroyed.
nset : |
the pointer to node set. |
xmlSecNodeSetContains ()
int xmlSecNodeSetContains (xmlSecNodeSetPtr nset,
xmlNodePtr node,
xmlNodePtr parent);
Checks whether the node
is in the nodes set or not.
nset : |
the pointer to node set. |
node : |
the pointer to XML node to check. |
parent : |
the pointer to node parent node. |
Returns : |
1 if the node is in the nodes set nset , 0 if it is not
and a negative value if an error occurs. |
xmlSecNodeSetAddList ()
xmlSecNodeSetPtr xmlSecNodeSetAddList (xmlSecNodeSetPtr nset,
xmlSecNodeSetPtr newNSet,
xmlSecNodeSetOp op);
Adds newNSet
to the nset
as child using operation op
.
nset : |
the pointer to currrent nodes set (or NULL). |
newNSet : |
the pointer to new nodes set. |
op : |
the operation type. |
Returns : |
the pointer to combined nodes set or NULL if an error
occurs. |
xmlSecNodeSetGetChildren ()
xmlSecNodeSetPtr xmlSecNodeSetGetChildren (xmlDocPtr doc,
const xmlNodePtr parent,
int withComments,
int invert);
Creates a new nodes set that contains:
- if withComments
is not 0 and invert
is 0:
all nodes in the parent
subtree;
- if withComments
is 0 and invert
is 0:
all nodes in the parent
subtree except comment nodes;
- if withComments
is not 0 and invert
not is 0:
all nodes in the doc
except nodes in the parent
subtree;
- if withComments
is 0 and invert
is 0:
all nodes in the doc
except nodes in the parent
subtree
and comment nodes.
doc : |
the pointer to an XML document. |
parent : |
the pointer to parent XML node or NULL if we want to include all document nodes. |
withComments : |
the flag include comments or not. |
invert : |
the "invert" flag. |
Returns : |
pointer to the newly created xmlSecNodeSet structure
or NULL if an error occurs. |
xmlSecNodeSetWalk ()
int xmlSecNodeSetWalk (xmlSecNodeSetPtr nset,
xmlSecNodeSetWalkCallback walkFunc,
void *data);
Calls the function walkFunc
once per each node in the nodes set nset
.
If the walkFunc
returns a negative value, then the walk procedure
is interrupted.
nset : |
the pointer to node set. |
walkFunc : |
the callback functions. |
data : |
the application specific data passed to the walkFunc . |
Returns : |
0 on success or a negative value if an error occurs. |
xmlSecNodeSetDumpTextNodes ()
int xmlSecNodeSetDumpTextNodes (xmlSecNodeSetPtr nset,
xmlOutputBufferPtr out);
Dumps content of all the text nodes from nset
to out
.
nset : |
the pointer to node set. |
out : |
the output buffer. |
Returns : |
0 on success or a negative value otherwise. |
xmlSecNodeSetDebugDump ()
void xmlSecNodeSetDebugDump (xmlSecNodeSetPtr nset,
FILE *output);
Prints information about nset
to the output
.