Commit 6b2e63c4 authored by Nicolas Delaby's avatar Nicolas Delaby

add load_tree function

parent a5981724
from setuptools import setup, find_packages
import sys, os
version = '0.9'
version = '0.9a'
setup(name='xml_marshaller',
version=version,
......
......@@ -13,7 +13,7 @@ from types import ClassType
import sys
from xml.sax import make_parser
from xml.sax.saxutils import escape, unescape
from lxml.sax import ElementTreeContentHandler
from lxml.sax import ElementTreeContentHandler, saxify
from lxml import etree
from lxml.builder import ElementMaker
from cStringIO import StringIO
......@@ -300,6 +300,18 @@ class Unmarshaller(ElementTreeContentHandler):
m = self.__class__()
return m._load(file_object)
def load_tree(self, tree):
"""Unmarshal element_tree object and return
python object.
"""
parser = make_parser()
parser.setFeature('http://xml.org/sax/features/namespaces', True)
parser.setContentHandler(self)
saxify(tree, self)
result = self.data_stack[0]
self._clear()
return result
def loads(self, string):
"Unmarshal one value from a string"
# Instantiate a new object; unmarshalling isn't thread-safe
......@@ -552,6 +564,7 @@ dumps_ns = _m_ns.dumps
_um = Unmarshaller()
load = _um.load
loads = _um.loads
load_tree = _um.load_tree
del _m, _um, _m_ns
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment