diff options
Diffstat (limited to 'tablib/packages/odf3/load.py')
| -rw-r--r-- | tablib/packages/odf3/load.py | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/tablib/packages/odf3/load.py b/tablib/packages/odf3/load.py deleted file mode 100644 index cf275c4..0000000 --- a/tablib/packages/odf3/load.py +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# Copyright (C) 2007-2008 Søren Roug, European Environment Agency -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License, or (at your option) any later version. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -# -# Contributor(s): -# - -# This script is to be embedded in opendocument.py later -# The purpose is to read an ODT/ODP/ODS file and create the datastructure -# in memory. The user should then be able to make operations and then save -# the structure again. - -from xml.sax import make_parser,handler -from xml.sax.xmlreader import InputSource -import xml.sax.saxutils -from .element import Element -from .namespaces import OFFICENS -from io import StringIO - -# -# Parse the XML files -# -class LoadParser(handler.ContentHandler): - """ Extract headings from content.xml of an ODT file """ - triggers = ( - (OFFICENS, 'automatic-styles'), (OFFICENS, 'body'), - (OFFICENS, 'font-face-decls'), (OFFICENS, 'master-styles'), - (OFFICENS, 'meta'), (OFFICENS, 'scripts'), - (OFFICENS, 'settings'), (OFFICENS, 'styles') ) - - def __init__(self, document): - self.doc = document - self.data = [] - self.level = 0 - self.parse = False - - def characters(self, data): - if self.parse == False: - return - self.data.append(data) - - def startElementNS(self, tag, qname, attrs): - if tag in self.triggers: - self.parse = True - if self.doc._parsing != "styles.xml" and tag == (OFFICENS, 'font-face-decls'): - self.parse = False - if self.parse == False: - return - - self.level = self.level + 1 - # Add any accumulated text content - content = ''.join(self.data) - if len(content.strip()) > 0: - self.parent.addText(content, check_grammar=False) - self.data = [] - # Create the element - attrdict = {} - for (att,value) in list(attrs.items()): - attrdict[att] = value - try: - e = Element(qname = tag, qattributes=attrdict, check_grammar=False) - self.curr = e - except AttributeError as v: - print("Error: %s" % v) - - if tag == (OFFICENS, 'automatic-styles'): - e = self.doc.automaticstyles - elif tag == (OFFICENS, 'body'): - e = self.doc.body - elif tag == (OFFICENS, 'master-styles'): - e = self.doc.masterstyles - elif tag == (OFFICENS, 'meta'): - e = self.doc.meta - elif tag == (OFFICENS,'scripts'): - e = self.doc.scripts - elif tag == (OFFICENS,'settings'): - e = self.doc.settings - elif tag == (OFFICENS,'styles'): - e = self.doc.styles - elif self.doc._parsing == "styles.xml" and tag == (OFFICENS, 'font-face-decls'): - e = self.doc.fontfacedecls - elif hasattr(self,'parent'): - self.parent.addElement(e, check_grammar=False) - self.parent = e - - - def endElementNS(self, tag, qname): - if self.parse == False: - return - self.level = self.level - 1 - str = ''.join(self.data) - if len(str.strip()) > 0: - self.curr.addText(str, check_grammar=False) - self.data = [] - self.curr = self.curr.parentNode - self.parent = self.curr - if tag in self.triggers: - self.parse = False |
