On 2010-12-17, Adam Tauno Williams <awill...@whitemice.org> wrote:
> I would strongly recommend against floundering about in OOo's very
> complex XML files - it is trivially easy to render a document unusable.

I do it all the time and have never had a problem.  I don't generate the
documents from scratch; I generate a template that contains everything
that don't need to dynamically generate.  Then I use one of two methods
to to update the content.xml:

1. In the simplest cases, I only need to change a single data field.  I
        replace the literal data in the content.xml file with:

        <replace field="variable_name"/>

        Then, using a DOM implementation, I can use getElementsByTagName()
        to get all of the replace tags and send the variable name to a
        distpach that generates the text used to replace the tag.

2. For collections of data (spreadsheet cells, table cells/rows, etc,
        I leave one piece of sample data in place.  I then clone the DOM
        element that I can use as a template and delete the origional.
        Entering the data is then a simple matter of cloning the template
        element, updating the information that it contains, and adding
        it to the childNodes of the parent.  Since tags all come from
        the file that OO.org/LibreOffice generated, the resulting markup
        will be valid.

Once the content.xml file has been updated, I simply run jar as a
subprocess to update the content.xml file in the ods/odt file.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to