您正在尝试在
XML
文档中选择与给定 XPath
表达式匹配的标签。 XPath
库支持的xml.etree
表达式在这里描述:https://docs.python.org/3/library/xml.etree.elementtree.html#elementtree-xpath.
查看文档后,我得出了这个简单的
XPath
表达式,它可以满足您的要求:选择根的所有子元素,它们都是 movie
并将属性 favorite
的值设置为 False
.
from xml.etree import ElementTree as Et
et.fromstring(xml)
e.findall('.//movie[@favorite="False"]')
[<Element 'movie' at 0x000001F20A6C48B8>, ...]
我才刚刚开始学习 xml 和 python,但相信下面的方法可行吗?
favorite=[]
not_favorite = []
for movie in root.findall(".genre/decade/movie/[@favorite='True']"):
fav = favorite.append(movie.attrib)
for movie in root.findall(".genre/decade/movie/[@favorite='False']"):
non_fav = not_favorite.append(movie.attrib)
print(f"Number of movie favourites is {(len(favorite))}.")
print(f"Number of movie non favourites is {(len(not_favorite))}.")