Stephane,

thank you very much!!!

That has solved my problem, I was not even aware of the readFile method - I had 
been copying examples that all used parseFile.

Fixed :-)

Cheers
Mike


>From: "Bidoul, Stephane" <[EMAIL PROTECTED]>
>To: "Mike Kneller" <[EMAIL PROTECTED]>, <[email protected]>
>Date: January 29, 2007 07:00:26 AM PST
>Subject: RE: [xml] Fwd:  continued problem with Python, libxml2 and entities
>
>Mike,
>
>You should tell libxml2 to resolve entities before doing any XSLT
>processing. In your test.py, use
>
>sourcedoc = libxml2.readFile( 'test.xml', None, libxml2.XML_PARSE_NOENT
>)
>
>If you look at pyxsltproc.py you will see that it does the same trick
>with a global setting ( libxml2.substituteEntitiesDefault(1) ) but I
>believe this way of doing is deprecated.
>
>-sbi 
>
>> -----Original Message-----
>> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On 
>> Behalf Of Mike Kneller
>> Sent: lundi 29 janvier 2007 15:29
>> To: [email protected]
>> Subject: [xml] Fwd: continued problem with Python, libxml2 
>> and entities
>> 
>> It turns out that the same transform run through xsltproc 
>> gives the correct result. 
>> 
>> What I am expecting to see is: 
>> <?xml version="1.0"?>
>> <content> 
>>         <p>(c)2007</p>
>> </content> 
>> 
>> When I run it using test.py, the result I get is: 
>> <?xml version="1.0"?>
>> <content> 
>>         <p>2007</p>
>> </content> 
>> 
>> So, as the xsltproc version gives me the correct result, I 
>> guess I can eliminate the library as the source of the 
>> problem, instead it would appear to be a problem with my 
>> Python code, or the Python wrapper. 
>> 
>> Any ideas? 
>> 
>> Mike 
>> 
>> 
>> >From: "Mike Kneller" <[EMAIL PROTECTED]>
>> >To: <[email protected]>
>> >Date: January 28, 2007 09:26:40 AM PST
>> >Subject: [xml] continued problem with Python, libxml2 and entities
>> >
>> >The continuing saga!
>> >
>> >I seem to have moved the entity issue from libxml2 to libxslt...
>> >
>> >Using the following testcase (using a standard identity
>> >transformation) now loses the entity.
>> >
>> >replacing <xsl:copy> with <xsl:copy-of> on the <p> node 
>> produces output 
>> >with the entity, as does using <xsl:value-of> on the same node.
>> >
>> >===test.py===
>> >import libxml2
>> >import libxslt
>> >
>> >sourcedoc = libxml2.parseFile( 'test.xml' ) styledoc = 
>> >libxml2.parseFile( 'test.xsl' ) style = 
>> >libxslt.parseStylesheetDoc(styledoc)
>> >result = style.applyStylesheet(sourcedoc, None) print 
>> >style.saveResultToString( result )
>> >style.freeStylesheet()
>> >result.freeDoc()
>> >sourcedoc.freeDoc()
>> >
>> >
>> >===test.xml===
>> ><?xml version="1.0"?>
>> ><?xml-stylesheet type="text/xsl" href="test.xsl" ?>
>> >
>> ><!DOCTYPE content [
>> >    <!ENTITY copy "&#169;">
>> >]>
>> >
>> ><content>
>> >    <p>&copy;2007</p>
>> ></content>
>> >
>> >
>> >===test.xsl===
>> ><?xml version="1.0"?>
>> ><xsl:stylesheet version="1.0"
>> >    xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>> > >
>> >
>> ><xsl:template match="/">
>> >    <xsl:apply-templates match="." />
>> ></xsl:template>
>> >
>> ><xsl:template match="@*|node()">
>> >    <xsl:copy>
>> >            <xsl:apply-templates select="@*|node()"/>
>> >    </xsl:copy>
>> ></xsl:template>
>> >
>> ></xsl:stylesheet>
>> >
>> >
>> >Cheers
>> >Mike Kneller
>> >[EMAIL PROTECTED]
>> >http://www.mikekneller.com
>> >
>> >_______________________________________________
>> >xml mailing list, project page  http://xmlsoft.org/ [email protected] 
>> >http://mail.gnome.org/mailman/listinfo/xml
>> >
>> >
>> _______________________________________________
>> xml mailing list, project page  http://xmlsoft.org/ 
>> [email protected] http://mail.gnome.org/mailman/listinfo/xml
>> 
>
>
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to