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

如何用xml.etree读取压缩包中的XML文件并获取其树结构

从Catrobat压缩包读取XML树结构的正确方法

错误原因分析

  • z.ElementTree.parse写法错误:ZipFile对象不存在ElementTree属性,ElementTree是你导入的XML处理模块,需直接调用其方法。
  • 直接ElementTree.parse("code.xml")找不到文件:code.xml是压缩包内部的文件,并非本地磁盘上的独立文件,无法直接通过文件名访问。

正确实现代码

方法一:通过文件对象解析XML

from xml.etree import ElementTree
import zipfile

with zipfile.ZipFile('knifk.catrobat') as z:
    # 打开压缩包内的code.xml文件
    with z.open('code.xml') as xml_file:
        # 从文件对象解析生成XML树
        xml_tree = ElementTree.parse(xml_file)
        # 获取根节点,后续可基于此操作XML结构
        root_node = xml_tree.getroot()
        # 示例:打印根节点标签
        print(root_node.tag)

方法二:读取文件内容后解析

from xml.etree import ElementTree
import zipfile

with zipfile.ZipFile('knifk.catrobat') as z:
    # 读取压缩包内code.xml的字节内容,解码为字符串
    xml_content = z.read('code.xml').decode('utf-8')
    # 从字符串解析生成XML树的根节点
    root_node = ElementTree.fromstring(xml_content)
    # 示例:打印根节点标签
    print(root_node.tag)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 10:12:10