libxslt Reference Manual |
---|
pattern
pattern - interface for the pattern matching used in template matches.
the implementation of the lookup of the right template for a given node must be really fast in order to keep decent performances.
Author(s): Daniel Veillard
Synopsis
typedef struct _xsltCompMatch xsltCompMatch; typedef xsltCompMatch * xsltCompMatchPtr; int xsltAddTemplate (xsltStylesheetPtr style,
xsltTemplatePtr cur,
const xmlChar * mode,
const xmlChar * modeURI); void xsltCleanupTemplates (xsltStylesheetPtr style); void xsltCompMatchClearCache (xsltTransformContextPtr ctxt,
xsltCompMatchPtr comp); xsltCompMatchPtr xsltCompilePattern (const xmlChar * pattern,
xmlDocPtr doc,
xmlNodePtr node,
xsltStylesheetPtr style,
xsltTransformContextPtr runtime); void xsltFreeCompMatchList (xsltCompMatchPtr comp); void xsltFreeTemplateHashes (xsltStylesheetPtr style); xsltTemplatePtr xsltGetTemplate (xsltTransformContextPtr ctxt,
xmlNodePtr node,
xsltStylesheetPtr style); int xsltMatchPattern (xsltTransformContextPtr ctxt,
xmlNodePtr node,
const xmlChar * pattern,
xmlDocPtr ctxtdoc,
xmlNodePtr ctxtnode); void xsltNormalizeCompSteps (void * payload,
void * data,
const xmlChar * name); int xsltTestCompMatchList (xsltTransformContextPtr ctxt,
xmlNodePtr node,
xsltCompMatchPtr comp);
Description
Details
Structure xsltCompMatch
struct _xsltCompMatch { The content of this structure is not made public by the API. } xsltCompMatch;
Typedef xsltCompMatchPtr
xsltCompMatch * xsltCompMatchPtr;
xsltAddTemplate ()
int xsltAddTemplate (xsltStylesheetPtr style,
xsltTemplatePtr cur,
const xmlChar * mode,
const xmlChar * modeURI)
Register the XSLT pattern associated to @cur
style: | an XSLT stylesheet |
cur: | an XSLT template |
mode: | the mode name or NULL |
modeURI: | the mode URI or NULL |
Returns: | -1 in case of error, 0 otherwise |
xsltCleanupTemplates ()
void xsltCleanupTemplates (xsltStylesheetPtr style)
Cleanup the state of the templates used by the stylesheet and the ones it imports.
style: | an XSLT stylesheet |
xsltCompMatchClearCache ()
void xsltCompMatchClearCache (xsltTransformContextPtr ctxt,
xsltCompMatchPtr comp)
Clear pattern match cache.
ctxt: | a XSLT process context |
comp: | the precompiled pattern list |
xsltCompilePattern ()
xsltCompMatchPtr xsltCompilePattern (const xmlChar * pattern,
xmlDocPtr doc,
xmlNodePtr node,
xsltStylesheetPtr style,
xsltTransformContextPtr runtime)
Compile the XSLT pattern and generates a list of precompiled form suitable for fast matching. [1] Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern
pattern: | an XSLT pattern |
doc: | the containing document |
node: | the containing element |
style: | the stylesheet |
runtime: | the transformation context, if done at run-time |
Returns: | the generated pattern list or NULL in case of failure |
xsltFreeCompMatchList ()
void xsltFreeCompMatchList (xsltCompMatchPtr comp)
Free up the memory allocated by all the elements of @comp
comp: | an XSLT comp list |
xsltFreeTemplateHashes ()
void xsltFreeTemplateHashes (xsltStylesheetPtr style)
Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism
style: | an XSLT stylesheet |
xsltGetTemplate ()
xsltTemplatePtr xsltGetTemplate (xsltTransformContextPtr ctxt,
xmlNodePtr node,
xsltStylesheetPtr style)
Finds the template applying to this node, if @style is non-NULL it means one needs to look for the next imported template in scope.
ctxt: | a XSLT process context |
node: | the node being processed |
style: | the current style |
Returns: | the xsltTemplatePtr or NULL if not found |
xsltMatchPattern ()
int xsltMatchPattern (xsltTransformContextPtr ctxt,
xmlNodePtr node,
const xmlChar * pattern,
xmlDocPtr ctxtdoc,
xmlNodePtr ctxtnode)
ctxt: | |
node: | |
pattern: | |
ctxtdoc: | |
ctxtnode: | |
Returns: |
xsltNormalizeCompSteps ()
void xsltNormalizeCompSteps (void * payload,
void * data,
const xmlChar * name)
This is a hashtable scanner function to normalize the compiled steps of an imported stylesheet.
payload: | pointer to template hash table entry |
data: | pointer to the stylesheet |
name: | template match name |
xsltTestCompMatchList ()
int xsltTestCompMatchList (xsltTransformContextPtr ctxt,
xmlNodePtr node,
xsltCompMatchPtr comp)
Test whether the node matches one of the patterns in the list
ctxt: | a XSLT process context |
node: | a node |
comp: | the precompiled pattern list |
Returns: | 1 if it matches, 0 if it doesn't and -1 in case of failure |