diff options
Diffstat (limited to 'utils_xml.py')
-rw-r--r-- | utils_xml.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/utils_xml.py b/utils_xml.py index f835dae..a93165c 100644 --- a/utils_xml.py +++ b/utils_xml.py @@ -54,8 +54,13 @@ rng_get_start = etree.ETXPath("/{0}/{1}" .format(namespaced(RNG, 'grammar'), namespaced(RNG, 'start'))) xml_get_root_pi = etree.XPath("/*/processing-instruction()") -xmltag_get_localname = lambda tag: etree.QName(tag).localname -xmltag_get_namespace = lambda tag: etree.QName(tag).namespace + +# tag can also be a subclass of etree._Element when applied on `element.tag` +# --> return an empty string in such non-string cases +xmltag_get_localname = lambda tag: etree.QName(tag).localname \ + if isinstance(tag, basestring) else '' +xmltag_get_namespace = lambda tag: etree.QName(tag).namespace \ + if isinstance(tag, basestring) else '' RNG_ELEMENT = ("/{0}//{1}".format(namespaced(RNG, 'grammar'), namespaced(RNG, 'element')) |