summaryrefslogtreecommitdiffstats
path: root/Lib/xml/etree
diff options
context:
space:
mode:
authorEugene Triguba <eugenetriguba@gmail.com>2022-08-01 16:52:39 (GMT)
committerGitHub <noreply@github.com>2022-08-01 16:52:39 (GMT)
commita95e60db748ec6f2c19b5710c11f62e1e4d669f4 (patch)
treef8604f233cab3f2839bf53c59c086841580e211d /Lib/xml/etree
parent858c9a58bf56cefc792bf0eb1ba22984b7b2d150 (diff)
downloadcpython-a95e60db748ec6f2c19b5710c11f62e1e4d669f4.zip
cpython-a95e60db748ec6f2c19b5710c11f62e1e4d669f4.tar.gz
cpython-a95e60db748ec6f2c19b5710c11f62e1e4d669f4.tar.bz2
gh-91447: Fix findtext to only give an empty string on None (GH-91486)
The API documentation for [findtext](https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.findtext) states that this function gives back an empty string on "no text content." With the previous implementation, this would give back a empty string even on text content values such as 0 or False. This patch attempts to resolve that by only giving back an empty string if the text attribute is set to `None`. Resolves #91447. Automerge-Triggered-By: GH:gvanrossum
Diffstat (limited to 'Lib/xml/etree')
-rw-r--r--Lib/xml/etree/ElementPath.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/Lib/xml/etree/ElementPath.py b/Lib/xml/etree/ElementPath.py
index cd3c354..dc6bd28 100644
--- a/Lib/xml/etree/ElementPath.py
+++ b/Lib/xml/etree/ElementPath.py
@@ -416,6 +416,8 @@ def findall(elem, path, namespaces=None):
def findtext(elem, path, default=None, namespaces=None):
try:
elem = next(iterfind(elem, path, namespaces))
- return elem.text or ""
+ if elem.text is None:
+ return ""
+ return elem.text
except StopIteration:
return default