Re: [xslt] xsltProcessOneNode()



On Fri, Nov 07, 2008 at 09:41:46PM +0100, Stefan Behnel wrote:
> Hi,

  Hi,

sorry it seems I completely ignored this xslt forlder for way too long.
But this is still worth replying

> I wonder why xsltProcessOneNode() is only used in the module where it's
> implemented (transform.c) but isn't declared static. It also doesn't appear in
> any of the header files, i.e. it's not public.

  oversight I think, maybe I expected that code would be called from
another module too. Anyway I'm making it static and starting from
next version the symbols exported by shared libraries will be strictly
controlled like like for libxml2 2.7.4 (see doc/symbols.xml)

> I accidentally used this function in lxml which lead to compile errors under
> Windows, but before I take it back out there forever, is it possible to
> actually make it public? The use case I have is to let users implement XSLT
> extension elements in Python, and xsltProcessOneNode() would be perfect to
> give them a way to continue processing subtrees à-la
> 
> 	<xsl:apply-templates select="..."/>
> 
> Or is there a better way to achieve the same thing?

  Hum, not that I can think of right now. I agree it would be beneficial
for some kind of streaming mode to be able to process a subtree, but we
should provide a proper API, with the transformation context, the source
node, and a target document/location. Things like incompatible dictionaries
on the target tree may make things harder than one would expect
though...

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel veillard com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]