Python XML操作中DOM变量赋值失败及循环未执行问题求助
问题分析与解决
你的代码存在两个关键问题,导致没有预期输出:
XML节点定位错误
你的XML文件根节点就是<movie>,domtree.documentElement拿到的已经是<movie>节点。后续调用group.getElementsByTagName('movie')是在找<movie>节点下的子<movie>节点,而你的XML里根本不存在这类子节点,所以Main是空列表,循环自然不会执行。节点值获取方式错误
<title>是<movie>的子元素,不是<movie>节点的属性,用getAttribute('title')无法拿到值,应该获取子元素的文本内容。
修正后的代码
import xml.dom.minidom import glob Directory = "/RAID/Server-Main/KODI/VideoDB/" for InFile in glob.glob(Directory + "*.xnfo"): print(InFile) domtree = xml.dom.minidom.parse(InFile) # 直接获取根节点(即<movie>节点) movie_node = domtree.documentElement # 获取所有<title>子节点,取第一个即可 title_nodes = movie_node.getElementsByTagName('title') if title_nodes: # 获取<title>节点内的文本内容 title = title_nodes[0].firstChild.data print(title)
补充说明
- 如果你的XML文件确保只有一个
<title>节点,用title_nodes[0]是安全的;如果存在多个<title>节点,可以循环遍历title_nodes处理。 firstChild.data用于提取元素内的文本,因为<title>El Dorado</title>中的文本属于该元素的第一个子节点(文本节点)。
内容的提问来源于stack exchange,提问作者lrhorer
相关产品推荐
相关产品推荐

