You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python XML操作中DOM变量赋值失败及循环未执行问题求助

问题分析与解决

你的代码存在两个关键问题,导致没有预期输出:

  1. XML节点定位错误
    你的XML文件根节点就是<movie>,domtree.documentElement拿到的已经是<movie>节点。后续调用group.getElementsByTagName('movie')是在找<movie>节点下的子<movie>节点,而你的XML里根本不存在这类子节点,所以Main是空列表,循环自然不会执行。

  2. 节点值获取方式错误
    <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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 09:42:35