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

Re: [xml] Output from libxslt



On Sun, 11 Mar 2001, Daniel Veillard wrote:

> On Sun, Mar 11, 2001 at 10:28:24AM +0000, Matt Sergeant wrote:
> > I can get libxslt to output using the right output method to a file, no
> > problem. It's just xsltSaveResultToFile. But I want to be able to output
> > to memory, or with callbacks...
> >
> > Unfortunately there's no example of xmlOutputBuffer anywhere in the code,
> > which looks like how I would do it. So my question before I just start
> > hacking, is what is the "ioctxt" void pointer? Is it somewhere I can stash
> > a private structure for use in the callback? Or will it get overwritten?
> > If so, the output callbacks really need some way of storing a private
> > pointer, otherwise it's going to be impossible to make some of this stuff
> > thread safe.
>
>   Okay, an IO output bufffer can be user defined to output to memory,
> a protocol stack, a database ...
>   It's like a device handler in most OSes, there is a set of entry points
> (i.e. the write and close callbacks) and a context pointer which is
> user definable.
>   Yes the ioctx argument is the context defined by the user and passed
> as the first argument of the write and close callbacks.
>
>   More informations can be found in:
>     http://xmlsoft.org/xmlio.html
>     http://xmlsoft.org/html/libxml-xmlio.html#XMLOUTPUTBUFFERCREATEIO
>
> Seems I need better descriptions of the functions arguments or usage
> description, feedback welcome :-)

Feedback: works fine. Thanks :-)

int
iowrite_scalar(void * context, const char * buffer, int len)
{
    SV * scalar;

    scalar = (SV *)context;

    sv_catpvn(scalar, (char*)buffer, len);

    return 0;
}

I love Perl :-)

I'm working on iowrite_fh() now, should be fairly simple too.

FWIW, I've had someone report that XML::LibXSLT is "more than twice as
fast as XML::Sablotron for the same large input file".

-- 
<Matt/>

    /||    ** Founder and CTO  **  **   http://axkit.com/     **
   //||    **  AxKit.com Ltd   **  ** XML Application Serving **
  // ||    ** http://axkit.org **  ** XSLT, XPathScript, XSP  **
 // \\| // ** mod_perl news and resources: http://take23.org  **
     \\//
     //\\
    //  \\





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