# The XSLT C library for GNOME ## Module pattern from libxslt

API Menu
Main Menu Developer Menu API Menu ChangeLog
Related links
Mail archive XML libxml2 FTP Windows binaries Solaris binaries MacOsX binaries Bug Tracker lxml Python bindings Perl XSLT bindings XSLT with PHP Apache module Pascal bindings Xsldbg Debugger
API Indexes
Alphabetic Constructors Functions/Types Modules Symbols
the implementation of the lookup of the right template for a given node must be really fast in order to keep decent performances. ## Table of Contents
    Structure xsltCompMatch
    struct _xsltCompMatch
    The content of this structure is not made public by the API.
    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 ### Structure xsltCompMatch
    Structure xsltCompMatch
    struct _xsltCompMatch {
    The content of this structure is not made public by the API.
    }
### Function: 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
### Function: xsltCleanupTemplates
    void	xsltCleanupTemplates		(xsltStylesheetPtr style)
Cleanup the state of the templates used by the stylesheet and the ones it imports.
`style`: | an XSLT stylesheet
### Function: xsltCompMatchClearCache
    void	xsltCompMatchClearCache		(xsltTransformContextPtr ctxt,
    					 xsltCompMatchPtr comp)
Clear pattern match cache.
`ctxt`: | a XSLT process context
`comp`: | the precompiled pattern list
### Function: 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
### Function: xsltFreeCompMatchList
    void	xsltFreeCompMatchList		(xsltCompMatchPtr comp)
Free up the memory allocated by all the elements of @comp
`comp`: | an XSLT comp list
### Function: xsltFreeTemplateHashes
    void	xsltFreeTemplateHashes		(xsltStylesheetPtr style)
Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism
`style`: | an XSLT stylesheet
### Function: 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
### Function: xsltMatchPattern
    int	xsltMatchPattern		(xsltTransformContextPtr ctxt,
    					 xmlNodePtr node,
    					 const xmlChar * pattern,
    					 xmlDocPtr ctxtdoc,
    					 xmlNodePtr ctxtnode)
`ctxt`: |
`node`: |
`pattern`: |
`ctxtdoc`: |
`ctxtnode`: |
`Returns`: |
### Function: 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
### Function: 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
Daniel Veillard