Generating header information using ElementTree

John Machin sjmachin at lexicon.net
Sun Nov 26 17:28:12 EST 2006


Craig wrote:
> Fredrik Lundh wrote:
>
> > Craig wrote:
> >
> > > I'm only new to Python so please bear with me.  I using ElementTree to
> > > generate an XML file that will reference a DTD and an XSL file.  The
> > > header information I want at the start of the file is as follows:
> > >
> > > <?xml version="1.0"?>
> > > <?xml-stylesheet type="text/xsl" href="test.xsl"?>
> > > <!DOCTYPE BobActivityLog SYSTEM "test.dtd">
> > >
> > > How do you add this header information to the tree
> >
> > to the file, you mean?  use print.
> >
> > </F>
>
> Thanks for the quick response.  Here is the code I am using to manually
> write to the file is:
>
>     outFile = open("record.xml", 'w')
>     outFile.write = ("<?xml version=\"1.0\"?>\n")

outFile.write is a *method* that you call to write your string, not
some sort of magic gadget that writes stuff as a side-effect of being
assigned to. Simply do this:

outFile.write("<?xml version=\"1.0\"?>\n")

and (of course) fix the following similar problems.


>     outFile.write = ("<?xml-stylesheet type=\"text/xsl\"
> href=\"test.xsl\"?>\n")
>     outFile.write = ("<!DOCTYPE BobActivityLog SYSTEM \"test.dtd\">\n")
>     outFile.close()
>
> When I run the code I get the following error message:
>
> Traceback (most recent call last):
>   File "bob-xml.py", line 189, in <module>
>     main()
>   File "bob-xml.py", line 173, in main
>     outFile.write = ("<?xml version=\"1.0\"?>\n")
> AttributeError: 'file' object attribute 'write' is read-only
>

If that were permitted, you'd be replacing the  method with a string!

HTH,
John




More information about the Python-list mailing list