无法使用 Python 中的 ElementTree 从文件中解析 XML 3
Unable to parse XML from file with ElementTree in Python 3
我正在尝试 Python 3 的模块 ElementTree 来解析 XML 但我无法让它工作。
我有一个 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<show>
<name>Name 1</name>
<number>79</number>
</show>
<show>
<name>Name 2</name>
<number>382</number>
</show>
</root>
我想检查,给定一个名字,它是否存在于 XML 上并获取号码。因此,当我编写代码时,我会:
show_input = show.lower()
file_to_parse = findXMLshowFile(show_input)
file_path = os.path.join(LOCATION_URL, file_to_parse)
root = etree.parse(file_path)
shows = root.findall('show')
for element in shows:
name = element.find('name').text
if name.lower() == show:
show_name = name
show_number = int(element.find('number').text)
break
return [show_name, show_number]
我得到空的姓名和电话号码。调试,当我做 shows = root.findall('show')
它有 2 个对象,但它们是空的。
我正在阅读 documentation 但我不知道我做错了什么。谁能告诉我哪里错了?
此致
感谢@RomanPerekhrest,我做的一切都是正确的,但我检查了错误的变量。
用 name.lower() == show_input
替换 name.lower() == show:
是解决方案。
我正在尝试 Python 3 的模块 ElementTree 来解析 XML 但我无法让它工作。
我有一个 XML 文件:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<show>
<name>Name 1</name>
<number>79</number>
</show>
<show>
<name>Name 2</name>
<number>382</number>
</show>
</root>
我想检查,给定一个名字,它是否存在于 XML 上并获取号码。因此,当我编写代码时,我会:
show_input = show.lower()
file_to_parse = findXMLshowFile(show_input)
file_path = os.path.join(LOCATION_URL, file_to_parse)
root = etree.parse(file_path)
shows = root.findall('show')
for element in shows:
name = element.find('name').text
if name.lower() == show:
show_name = name
show_number = int(element.find('number').text)
break
return [show_name, show_number]
我得到空的姓名和电话号码。调试,当我做 shows = root.findall('show')
它有 2 个对象,但它们是空的。
我正在阅读 documentation 但我不知道我做错了什么。谁能告诉我哪里错了?
此致
感谢@RomanPerekhrest,我做的一切都是正确的,但我检查了错误的变量。
用 name.lower() == show_input
替换 name.lower() == show:
是解决方案。