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

Python使用lxml解析XML文件时报加载外部实体失败错误如何解决

问题解决步骤

报错核心是etree.parse无法定位到指定的XML文件,和XML处理逻辑无关,按以下顺序排查即可:

  • 确认文件路径匹配运行时工作目录
    Python运行代码时的工作目录不一定等于代码文件存储目录,在代码开头加入以下代码校验:
    import os
    # 打印当前Python运行的工作目录
    print("当前工作目录:", os.getcwd())
    # 校验目标文件是否在工作目录下存在
    print("目标文件是否存在:", os.path.exists("AnyConv.com__CCSOPM Section 1_Master (1).xml"))
    
    若文件不存在,两种修复方案:
    1. 将XML文件移动到打印出的工作目录中
    2. 拼接代码文件所在的绝对路径读取,避免工作目录变动影响:
    import os
    from lxml import etree
    import numpy as np
    
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    xml_path = os.path.join(BASE_DIR, "AnyConv.com__CCSOPM Section 1_Master (1).xml")
    tree = etree.parse(xml_path)
    
  • 校验文件名准确性
    Linux、macOS系统大小写敏感,需确认文件名的大小写、空格、括号、特殊符号完全匹配,比如文件后缀是否为.XML而非.xml,名称中的下划线、数字是否拼写正确。
  • 确认文件读取权限
    检查XML文件是否被其他软件锁定占用,或是当前运行Python的用户没有该文件的读取权限,可尝试复制文件到其他目录重新命名后测试。
  • 特殊字符兼容处理
    若路径包含中文、特殊符号导致lxml路径解析失败,可先手动读取文件内容再传入解析:
    with open(xml_path, 'r', encoding='utf-8') as f:
        xml_content = f.read()
    root = etree.fromstring(xml_content.encode('utf-8'))
    tree = etree.ElementTree(root)
    

内容的提问来源于stack exchange,提问作者Alberto Valdivia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 04:51:01