无法使用Python 3中的ElementTree解析文件中的XML

时间:2017-12-09 22:59:59

标签: python xml python-3.x elementtree

我正在尝试使用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而我不知道我做错了什么。有人可以告诉我这是我的错误吗?

此致

1 个答案:

答案 0 :(得分:0)

感谢@RomanPerekhrest,我做的一切正确,但我正在检查错误的变量。

name.lower() == show_input替换{{1}}是解决方法。