diff options
author | Jan Pokorný <jpokorny@redhat.com> | 2015-05-29 13:43:13 +0200 |
---|---|---|
committer | Jan Pokorný <jpokorny@redhat.com> | 2015-05-29 20:01:18 +0200 |
commit | c89db45c8c2a48b798557706b85cf05dd0f1dc4a (patch) | |
tree | 59e5c04d3a8a4d3e2b6ae248a86e53593dcbfa1e | |
parent | b315071bf19fe9fd9c1d6c2739854da1c92f4d9f (diff) | |
download | clufter-c89db45c8c2a48b798557706b85cf05dd0f1dc4a.tar.gz clufter-c89db45c8c2a48b798557706b85cf05dd0f1dc4a.tar.xz clufter-c89db45c8c2a48b798557706b85cf05dd0f1dc4a.zip |
utils_xml: xmltag_get_{localname,namespace}: make more robust
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
-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')) |