[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [xml] Fwd: continued problem with Python, libxml2 and entities
- From: Mike Kneller <ukchill mac com>
- To: xml gnome org
- Subject: Re: [xml] Fwd: continued problem with Python, libxml2 and entities
- Date: Mon, 29 Jan 2007 07:08:07 -0800
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" <Stephane Bidoul softwareag com>
>To: "Mike Kneller" <ukchill mac com>, <xml gnome org>
>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: xml-bounces gnome org [mailto:xml-bounces gnome org] On
>> Behalf Of Mike Kneller
>> Sent: lundi 29 janvier 2007 15:29
>> To: xml gnome org
>> 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" <ukchill mac com>
>> >To: <xml gnome org>
>> >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 "©">
>> >]>
>> >
>> ><content>
>> > <p>©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
>> >ukchill mac com
>> >http://www.mikekneller.com
>> >
>> >_______________________________________________
>> >xml mailing list, project page http://xmlsoft.org/ xml gnome org
>> >http://mail.gnome.org/mailman/listinfo/xml
>> >
>> >
>> _______________________________________________
>> xml mailing list, project page http://xmlsoft.org/
>> xml gnome org http://mail.gnome.org/mailman/listinfo/xml
>>
>
>
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]