David wrote:
> Upayavira wrote:
>
>> David wrote:
>>
>>> Sylvain Wallez wrote:
>>>
>>>> David wrote:
>>>>
>>>>> I am writing a cocoon transformer and need to know when any of
>>>>> multiple xpaths match. I'm sure there must be a be a more efficient
>>>>> way then converting it to a DOM document and then running each
>>>>> xpath to get the nodelist of each.
>>>>>
>>>>> What is the best way to do this?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> The problem with XPath is that it's intrinsically tied to the DOM
>>>> hierarchical model. So you need to have a DOM ready to query the
>>>> document with XPath.
>>>>
>>>> You may want to have a look at STX [1], which uses a subset of XPath
>>>> that is suited to streamed processing.
>>>>
>>>> Sylvain
>>>>
>>>> [1] http://stx.sourceforge.net/
>>>>
>>>
>>> I was looking at STX too but couldn't find a way to use it from Java.
>>> Anyone know how you use it without making an stx file?
>>>
>>> I understand the issue with xpaths and needing DOM. I know xalan has
>>> its Document Table Model (DTM) that improves on performance. Anyone
>>> know if we can tap into that without writting a XSL file?
>>
>>
>>
>> For an example of using STX in java, see the STX block, that allows
>> you to use STX as a normal Cocoon transformer.
>>
>> Regards, Upayavira
>>
>
> I looked in there already :-)
> There are no Java examples. Only xmap and stx files. Maybe in some
> branch of cocoon?
D'ya know why? Because stx iomplements TRAX, so all you need is a
configuration for the existing TRAX (XSLT) transformer. Look in
src/blocks/stx/conf/stx-transformer.xmap, you'll see the relevant
config. So, whatever you do for XSLT, you do the same for STX.
Regards, Upayavira
|