-
-
Notifications
You must be signed in to change notification settings - Fork 34.4k
findtext returns empty string on integer zero value #91447
Copy link
Copy link
Closed
Labels
Description
ElementTree's "findtext" function returns an empty string value if the element's text field contains an integer with value 0. Below example illustrates the issue:
import xml.etree.ElementTree as ET
# Create root element
test = ET.Element("test")
# Compute sum and difference on two numbers
firstNumber = 5000
secondNumber = 5000
sum = firstNumber + secondNumber
difference = firstNumber - secondNumber
# Create subelements for sum and difference values
el = ET.SubElement(test, "sum")
el.text = sum
el = ET.SubElement(test, "diff")
el.text = difference
# Print data types
print("type(sum): " + str(type(sum)))
print("type(diff): " + str(type(difference)))
print("type(sum subelt): " + str(type(test.findtext('./sum'))))
print("type(diff subelt): " + str(type(test.findtext('./diff'))))
# Print values of sub elements
print("sum subelt: " + str(test.findtext('./sum')))
print("diff subelt: " + str(test.findtext('./diff')))This gives me the following output:
type(sum): <class 'int'>
type(diff): <class 'int'>
type(sum subelt): <class 'int'>
type(diff subelt): <class 'str'>
sum subelt: 10000
diff subelt:
Note how the data type of the "diff" sub-element is "string", even though the source data is an integer.
I'm using Python 3.8.10 on Linux Mint 20.1 Ulyssa (based on Ubuntu Focal Fossa 20.04).
Reactions are currently unavailable