Skip to content

Commit 867dd46

Browse files
author
Shakeel
committed
Define __itertext() for Python < 2.7 when parsing XML results
1 parent 0a6e1a5 commit 867dd46

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

splunklib/results.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,25 @@ def _parse_results(self, stream):
246246
elem.clear()
247247

248248
elif elem.tag in ('text', 'v') and event == 'end':
249-
text = "".join(elem.itertext())
249+
try:
250+
text = "".join(elem.itertext())
251+
except AttributeError:
252+
# Assume we're running in Python < 2.7, before itertext() was added
253+
# So we'll define it here
254+
255+
def __itertext(self):
256+
tag = self.tag
257+
if not isinstance(tag, basestring) and tag is not None:
258+
return
259+
if self.text:
260+
yield self.text
261+
for e in self:
262+
for s in __itertext(e):
263+
yield s
264+
if e.tail:
265+
yield e.tail
266+
267+
text = "".join(__itertext(elem))
250268
values.append(text.encode('utf8'))
251269
elem.clear()
252270

0 commit comments

Comments
 (0)