繁体   English   中英

从 xml 检索数据时出现 IndexError

[英]IndexError in retrieving data from xml

<ENTITY>
    <ENTITY_ADDRESS>
        <CITY> Pyongyang </CITY>
        <COUNTRY > Democratic People's Republic of Korea</COUNTRY>
    </ENTITY_ADDRESS>
</ENTITY>

我正在尝试使用 python 内置模块 xml 从上述 xml 文档中获取城市。 代码如下:

from xml.dom import minidom

xml = minidom.parse('data.xml')

entities = xml.getElementsByTagName('ENTITY')

city = entities[0].getElementsByTagName("CITY")[0].firstChild.data

但我收到此错误:

File "G:/Sakib/Scrapy/xml_to_json/xml_to_json.py", line 4, in <module>
    city = entities[0].getElementsByTagName("CITY")[0].firstChild.data
IndexError: list index out of range

有谁能帮助我吗?

你错过了ENTITY_ADDRESS 此外,您应该能够调用nodeValue来获取文本。

尝试:

    from xml.dom import minidom

    xml = minidom.parse('data.xml')
    
    entities = xml.getElementsByTagName('ENTITY')

    entities_address = entities[0].getElementsByTagName('ENTITY_ADDRESS')

    city = entities_address[0].getElementsByTagName("CITY")[0].firstChild.nodeValue.strip()

您也可以通过仅搜索CITY来缩短代码:

xml = minidom.parse('data.xml')
city = xml.getElementsByTagName("CITY")[0].firstChild.nodeValue
print(city.strip())

Output:

Pyongyang

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM