diff options
Diffstat (limited to 'mammoth/xmlparser.py')
| -rw-r--r-- | mammoth/xmlparser.py | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/mammoth/xmlparser.py b/mammoth/xmlparser.py index 8b26777..d58ea75 100644 --- a/mammoth/xmlparser.py +++ b/mammoth/xmlparser.py @@ -2,7 +2,25 @@ import collections import xml.sax -XmlElement = collections.namedtuple("XmlElement", ["name", "attributes", "children"]) +XmlElementBase = collections.namedtuple("XmlElement", ["name", "attributes", "children"]) +class XmlElement(XmlElementBase): + def find_child_or_null(self, name): + for child in self.children: + if child.name == name: + return child + return _null_xml_element + + +class NullXmlElement(object): + attributes = {} + + def find_child_or_null(self, name): + return self + + +_null_xml_element = NullXmlElement() + + XmlText = collections.namedtuple("XmlText", ["value"]) |
