如何解决XML处理脚本仅列出一个元素,但是要列出多个元素
我整理了一个简单的Python脚本,以打印出与父元素属性Security Advisory
关联的所有包名称的XML数据。
import xml.etree.ElementTree as ET
tree = ET.parse('errata.xml')
root = tree.getroot()
for security in root.findall("*[@type='Security Advisory']"):
packages = security.find('packages')
print(packages.text)
XML数据位于here
但是,该脚本仅打印出第一个程序包名称,但是有多个程序包名称。我将如何获取所有属于父属性Security Advisory
的软件包名称?
解决方法
在下面(似乎可行)
import xml.etree.ElementTree as ET
import requests
r = requests.get('https://cefs.b-cdn.net/6010e333a44911e24b5112e23acbb346ae15f7b7/errata.latest.xml')
if r.status_code == 200:
root = ET.fromstring(r.content)
sec_elements = [e for e in root.findall("*[@type='Security Advisory']") if
e.find('os_release') is not None and int(e.find('os_release').text) > 6]
for ele in sec_elements:
packages = ele.findall('./packages')
for p in packages:
print(p.text)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。