fonttools/Lib/ufoLib/plistFromETree.py

31 lines
713 B
Python

from ufoLib.plistlib import PlistParser
__all__ = ["readPlistFromTree"]
def readPlistFromTree(tree):
"""
Given an ElementTree Element *tree*, parse Plist data and return the root
object.
"""
parser = PlistTreeParser()
return parser.parseTree(tree)
class PlistTreeParser(PlistParser):
def parseTree(self, tree):
self.parseElement(tree)
return self.root
def parseElement(self, element):
self.handleBeginElement(element.tag, element.attrib)
# if there are children, recurse
for child in element:
self.parseElement(child)
# otherwise, parse the leaf's data
if not len(element):
# always pass str, not None
self.handleData(element.text or "")
self.handleEndElement(element.tag)