diff --git a/util/locale_database/ldml.py b/util/locale_database/ldml.py index 2a029ce98b6..d259bedba1c 100644 --- a/util/locale_database/ldml.py +++ b/util/locale_database/ldml.py @@ -21,6 +21,10 @@ See individual classes for further detail. from localetools import Error from dateconverter import convert_date +def _attrsFromDom(dom): + return { k: (v if isinstance(v, str) else v.nodeValue) + for k, v in dom.attributes.items() } + class Node (object): """Wrapper for an arbitrary DOM node. @@ -50,6 +54,9 @@ class Node (object): else: self.draft = max(draft, self.draftScore(attr)) + def attributes(self): + return _attrsFromDom(self.dom) + def findAllChildren(self, tag, wanted = None, allDull = False): """All children that do have the given tag and attributes. @@ -184,9 +191,7 @@ class Supplement (XmlScanner): if not any(a in e.dom.attributes for a in exclude)): if elt.attributes: - yield (elt.nodeName, - dict((k, v if isinstance(v, str) else v.nodeValue) - for k, v in elt.attributes.items())) + yield elt.nodeName, _attrsFromDom(elt) class LocaleScanner (object): def __init__(self, name, nodes, root):