lxml and xslt extensions
Stefan Behnel
stefan_ml at behnel.de
Sat Apr 4 14:55:07 EDT 2009
Hi,
dasacc22 wrote:
> On Apr 4, 11:31 am, dasacc22 wrote:
>> Im not sure where else to ask this.
The best place to ask is the lxml mailing list:
http://codespeak.net/mailman/listinfo/lxml-dev
>> But basically Im having trouble
>> figuring out how to successfully apply multiple extensions in a single
>> transformation. So for example if i have
>> <xsl:stylesheet .../>
>> <xsl:template...>
>> <my:tag/>
>> <my:tag/>
>> </xsl:template>
>> </xsl:stylesheet>
>>
>> in my xsl and my xslt extension looks like
>>
>> class TagExtension(etree.XSLTExtension):
>> def execute( ..., output_parent):
>> print 'executing tag_extension'
>> tag = etree.Element('p')
>> tag.text = 'Hello'
>> output_parent.append(tag)
>>
>> well then the transformation works for the first tag and appends it to
>> the root of the created doc but all subsequent calls dont append
>> (maybe b/c output_parent is now somewhere else for return?). And to
>> clarify, I know that its the first call that completes and all
>> subsequent calls fail b/c i have a subsequent call that performs a
>> different transformation.
>
> Oh well I found the culprit, etree.tostring seems to cut it off after
> the first transformation,
Not sure what you mean here. Could you post your question on the lxml
mailing list and add a runnable example that shows the behaviour?
> simply doing a
>
> $> print result
>
> displays the entire document. To make use of the keyword options
> xml_declaration, pretty_print, encoding, I tried using the .write
> method of result to a StringIO but it produces the same clipped
> result. Guess Ill have to edit the .docinfo attributes on the result
> and return the string
.docinfo is basically read-only. The result of the XSLT is serialised as
requested by the xsl:output element in the stylesheet.
Stefan
More information about the Python-list
mailing list