使用Python从XML文档中获取特定元素

时间:2018-04-26 08:26:50

标签: python xml

我需要获取以下列表:

https://support.content.office.net/en-us/static/O365IPAddresses.xml

有一个名为Identity的产品,我需要获取它下面的IPv4地址列表。是否可以选择'该元素并将其粘贴在Python数组中?如果这是JSON它现在已经完成了,我试图将doc转换为JSON,但是我这样做的常用模块并不喜欢它。

我所见过的所有教程都提到了在root上循环,但在JSON中我只选择了我想要的数据,当然有一种方法可以用XML做到这一点吗?我使用xml.etree.ElementTree

1 个答案:

答案 0 :(得分:0)

xml.etree.ElementTree有一个(有限的)XPath表达式支持,应该足以满足您的需求。假设您已在Element命名树(tree = xml.ElementTree.tree.parse(fd))中加载了xml数据,则可以使用findall提取所有相关标记,并findtext从中提取文本标签。所以这应该足够了:

addrlist = [ ad.findtext(".") for ad in tree.findall(
                  "./product[@name='Identity']/addresslist[@type='IPv4']/address") ]