summaryrefslogtreecommitdiffstats
path: root/ansible_collections/community/general/plugins/modules/xml.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-26 04:06:02 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-26 04:06:02 +0000
commite3eb94c23206603103f3c4faec6c227f59a1544c (patch)
treef2639459807ba88f55fc9c54d745bd7075d7f15c /ansible_collections/community/general/plugins/modules/xml.py
parentReleasing progress-linux version 9.4.0+dfsg-1~progress7.99u1. (diff)
downloadansible-e3eb94c23206603103f3c4faec6c227f59a1544c.tar.xz
ansible-e3eb94c23206603103f3c4faec6c227f59a1544c.zip
Merging upstream version 9.5.1+dfsg.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'ansible_collections/community/general/plugins/modules/xml.py')
-rw-r--r--ansible_collections/community/general/plugins/modules/xml.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/ansible_collections/community/general/plugins/modules/xml.py b/ansible_collections/community/general/plugins/modules/xml.py
index a3c12b8ee..f5cdbeac3 100644
--- a/ansible_collections/community/general/plugins/modules/xml.py
+++ b/ansible_collections/community/general/plugins/modules/xml.py
@@ -436,11 +436,16 @@ def is_attribute(tree, xpath, namespaces):
""" Test if a given xpath matches and that match is an attribute
An xpath attribute search will only match one item"""
+
+ # lxml 5.1.1 removed etree._ElementStringResult, so we can no longer simply assume it's there
+ # (https://github.com/lxml/lxml/commit/eba79343d0e7ad1ce40169f60460cdd4caa29eb3)
+ ElementStringResult = getattr(etree, '_ElementStringResult', None)
+
if xpath_matches(tree, xpath, namespaces):
match = tree.xpath(xpath, namespaces=namespaces)
- if isinstance(match[0], etree._ElementStringResult):
+ if isinstance(match[0], etree._ElementUnicodeResult):
return True
- elif isinstance(match[0], etree._ElementUnicodeResult):
+ elif ElementStringResult is not None and isinstance(match[0], ElementStringResult):
return True
return False