[XML-SIG] 4Suite problems

Anders Bruun Olsen anders@bruun-olsen.net
Fri, 13 Dec 2002 17:02:01 +0100


On Fri, Dec 13, 2002 at 08:41:59AM -0700, Uche Ogbuji wrote:
> > def ProcessFile(input, output):
> >         XSLT = open("ujds.xslt", "r").read()
> >         XML = open(input, "r").read()
> >         xsltprocessor = Processor()
> >         transform = InputSource.DefaultFactory.fromString(XSLT)
> >         document = InputSource.DefaultFactory.fromString(XML)
> I always strongly suggest that you still use URIs here.  For example
> transform = InputSource.DefaultFactory.fromString(XSLT, "ujds.xslt")
> This avoids errors if you try to do something later that performs resolution 
> against a relative URI.
> Note that you can just write:
>         xsltprocessor = Processor()
>         transform = InputSource.DefaultFactory.fromUri("ujds.xslt")
>         document = InputSource.DefaultFactory.fromUri(input)
> Which will eliminate the error and will have the additional advantage of being 
> a tad faster.

Thanks, it works now!

I have one more thing though - As I already have the XML file parsed to
a DOM instance, it would be a nice thing if I could use that DOM
instance instead of reading the whole XML file again from disk. I have
tried this approach:

def ProcessFile(dom, input, output):

        xsltprocessor = Processor()
        
        transform = InputSource.DefaultFactory.fromUri("ujds.xslt")

        xsltprocessor.appendStylesheet(transform)
        result = xsltprocessor.runNode(dom, input)
        if result:
                open(output, "w").write(result)

Which results in a file with this line only:

<?xml version='1.0' encoding='UTF-8'?>

I am trying to output as HTML, which now works nicely through the other
way. How can I (if possible/feasible at all) just use the DOM instance
instead of loading the file?

> I pointed to the likely solution above.  You may also want to browse my 
> article on 4Suite:
> http://www.xml.com/pub/a/2002/10/16/py-xml.html
> Which gives a fuller example and some discussion.  A fuller discussion on 
> 4Suite's pickiness about URIs is in the following:
> http://uche.ogbuji.net/tech/akara/pyxml/domlettes/

Thanks, I'll look into those articles!

-- 
Anders
-----BEGIN GEEK CODE BLOCK-----
Version: 3.12
GCS/O d--@ s:+ a-- C++ $UL+++ P++ L+++ E- W+ N(+) o K? w O- M-- V
PS+ PE@ Y+ PGP+ t 5 X R+ tv+ b+ DI+++ D+ G e- h !r y?
------END GEEK CODE BLOCK------
PGPKey: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x8BFECB41