Back to Turicreate

pattern: pattern expression handling

deps/src/libxml2-2.9.1/doc/devhelp/libxml2-pattern.html

6.4.19.9 KB
Original Source

| | | | | libxml2 Reference Manual |

pattern

pattern - pattern expression handling

allows to compile and test pattern expressions for nodes either in a tree or based on a parser state.

Author(s): Daniel Veillard

Synopsis

typedef[xmlStreamCtxt](libxml2-pattern.html#xmlStreamCtxt)*[xmlStreamCtxtPtr](#xmlStreamCtxtPtr);
typedef enum[xmlPatternFlags](#xmlPatternFlags);
typedef struct _xmlStreamCtxt[xmlStreamCtxt](#xmlStreamCtxt);
typedef struct _xmlPattern[xmlPattern](#xmlPattern);
typedef[xmlPattern](libxml2-pattern.html#xmlPattern)*[xmlPatternPtr](#xmlPatternPtr);
int[xmlPatternMinDepth](#xmlPatternMinDepth)([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp);[xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)[xmlPatternGetStreamCtxt](#xmlPatternGetStreamCtxt)([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp);
int[xmlPatternFromRoot](#xmlPatternFromRoot)([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp);
void[xmlFreePatternList](#xmlFreePatternList)([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp);
int[xmlPatternStreamable](#xmlPatternStreamable)([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp);
int[xmlStreamPushAttr](#xmlStreamPushAttr)([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)stream,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* ns);
int[xmlPatternMatch](#xmlPatternMatch)([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node);
int[xmlStreamWantsAnyNode](#xmlStreamWantsAnyNode)([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)streamCtxt);
int[xmlStreamPop](#xmlStreamPop)([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)stream);
void[xmlFreePattern](#xmlFreePattern)([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp);
int[xmlStreamPush](#xmlStreamPush)([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)stream,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* ns);
int[xmlPatternMaxDepth](#xmlPatternMaxDepth)([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp);[xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)[xmlPatterncompile](#xmlPatterncompile)(const[xmlChar](libxml2-xmlstring.html#xmlChar)* pattern,
[xmlDict](libxml2-dict.html#xmlDict)* dict,
int flags,
const[xmlChar](libxml2-xmlstring.html#xmlChar)** namespaces);
int[xmlStreamPushNode](#xmlStreamPushNode)([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)stream,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* ns,
int nodeType);
void[xmlFreeStreamCtxt](#xmlFreeStreamCtxt)([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)stream);

Description

Details

Structure xmlPattern

struct _xmlPattern {
The content of this structure is not made public by the API.
} xmlPattern;

Enum xmlPatternFlags

enum[xmlPatternFlags](#xmlPatternFlags){XML\_PATTERN\_DEFAULT= 0 /* simple pattern match */XML\_PATTERN\_XPATH= 1 /* standard XPath pattern */XML\_PATTERN\_XSSEL= 2 /* XPath subset for schema selector */XML\_PATTERN\_XSFIELD= 4 /* XPath subset for schema field */
};

Typedef xmlPatternPtr

[xmlPattern](libxml2-pattern.html#xmlPattern)* xmlPatternPtr;

Structure xmlStreamCtxt

struct _xmlStreamCtxt {
The content of this structure is not made public by the API.
} xmlStreamCtxt;

Typedef xmlStreamCtxtPtr

[xmlStreamCtxt](libxml2-pattern.html#xmlStreamCtxt)* xmlStreamCtxtPtr;

xmlFreePattern ()

void	xmlFreePattern ([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp)

Free up the memory allocated by @comp

| comp: | an XSLT comp |


xmlFreePatternList ()

void	xmlFreePatternList ([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp)

Free up the memory allocated by all the elements of @comp

| comp: | an XSLT comp list |


xmlFreeStreamCtxt ()

void	xmlFreeStreamCtxt ([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)stream)

Free the stream context

| stream: | the stream context |


xmlPatternFromRoot ()

int	xmlPatternFromRoot ([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp)

Check if the pattern must be looked at from the root.

| comp: | the precompiled pattern | | Returns: | 1 if true, 0 if false and -1 in case of error |


xmlPatternGetStreamCtxt ()

[xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)xmlPatternGetStreamCtxt	([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp)

Get a streaming context for that pattern Use xmlFreeStreamCtxt to free the context.

| comp: | the precompiled pattern | | Returns: | a pointer to the context or NULL in case of failure |


xmlPatternMatch ()

int	xmlPatternMatch ([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp,
[xmlNodePtr](libxml2-tree.html#xmlNodePtr)node)

Test whether the node matches the pattern

| comp: | the precompiled pattern | | node: | a node | | Returns: | 1 if it matches, 0 if it doesn't and -1 in case of failure |


xmlPatternMaxDepth ()

int	xmlPatternMaxDepth ([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp)

Check the maximum depth reachable by a pattern

| comp: | the precompiled pattern | | Returns: | -2 if no limit (using //), otherwise the depth, and -1 in case of error |


xmlPatternMinDepth ()

int	xmlPatternMinDepth ([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp)

Check the minimum depth reachable by a pattern, 0 mean the / or . are part of the set.

| comp: | the precompiled pattern | | Returns: | -1 in case of error otherwise the depth, |


xmlPatternStreamable ()

int	xmlPatternStreamable ([xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)comp)

Check if the pattern is streamable i.e. xmlPatternGetStreamCtxt() should work.

| comp: | the precompiled pattern | | Returns: | 1 if streamable, 0 if not and -1 in case of error. |


xmlPatterncompile ()

[xmlPatternPtr](libxml2-pattern.html#xmlPatternPtr)xmlPatterncompile	(const[xmlChar](libxml2-xmlstring.html#xmlChar)* pattern,
[xmlDict](libxml2-dict.html#xmlDict)* dict,
int flags,
const[xmlChar](libxml2-xmlstring.html#xmlChar)** namespaces)

Compile a pattern.

| pattern: | the pattern to compile | | dict: | an optional dictionary for interned strings | | flags: | compilation flags, see xmlPatternFlags | | namespaces: | the prefix definitions, array of [URI, prefix] or NULL | | Returns: | the compiled form of the pattern or NULL in case of error |


xmlStreamPop ()

int	xmlStreamPop ([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)stream)

push one level from the stream.

| stream: | the stream context | | Returns: | -1 in case of error, 0 otherwise. |


xmlStreamPush ()

int	xmlStreamPush ([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)stream,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* ns)

Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an element-node.

| stream: | the stream context | | name: | the current name | | ns: | the namespace name | | Returns: | -1 in case of error, 1 if the current state in the stream is a match and 0 otherwise. |


xmlStreamPushAttr ()

int	xmlStreamPushAttr ([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)stream,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* ns)

Push new attribute data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an attribute-node.

| stream: | the stream context | | name: | the current name | | ns: | the namespace name | | Returns: | -1 in case of error, 1 if the current state in the stream is a match and 0 otherwise. |


xmlStreamPushNode ()

int	xmlStreamPushNode ([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)stream,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* name,
const[xmlChar](libxml2-xmlstring.html#xmlChar)* ns,
int nodeType)

Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Different from xmlStreamPush() this function can be fed with nodes of type: element-, attribute-, text-, cdata-section-, comment- and processing-instruction-node.

| stream: | the stream context | | name: | the current name | | ns: | the namespace name | | nodeType: | the type of the node being pushed | | Returns: | -1 in case of error, 1 if the current state in the stream is a match and 0 otherwise. |


xmlStreamWantsAnyNode ()

int	xmlStreamWantsAnyNode ([xmlStreamCtxtPtr](libxml2-pattern.html#xmlStreamCtxtPtr)streamCtxt)

Query if the streaming pattern additionally needs to be fed with text-, cdata-section-, comment- and processing-instruction-nodes. If the result is 0 then only element-nodes and attribute-nodes need to be pushed.

| streamCtxt: | the stream context | | Returns: | 1 in case of need of nodes of the above described types, 0 otherwise. -1 on API errors. |