【问题标题】:Extracting String from XML files with loop in Python在 Python 中使用循环从 XML 文件中提取字符串
【发布时间】:2020-12-13 14:44:13
【问题描述】:

我有 14 个这样的不同 XML 文件,我正在尝试获取 ActionUnit Number 值(例如 45 和 5)。我也需要循环处理其他 13 个 XML 文件。之后,我需要为我提取的每个值创建子文件夹。我尝试了一个提取值的代码,但没有得到任何结果;

import xml.etree.cElementTree as ET

tree= ET.ElementTree(file=r'C:\Users\LME_s\Desktop\python quiz\Sessions\1\S001-001-oao_aucs.xml')
root= tree.getroot()
for chld in root:
   print (chld.get('ActionUnit Number'))

【问题讨论】:

  • 请将 xml 上传为文本而不是图像
  • 请一次问一个问题。

标签: python xml loops extract


【解决方案1】:

您的问题实际上是几个问题... 以下是如何从 xml 中提取您需要的数据。

import xml.etree.ElementTree as ET

XML = '''<ActionUnitCoding>
            <ActionUnit Number="45"></ActionUnit>
            <ActionUnit Number="5"></ActionUnit>
        </ActionUnitCoding>'''
root = ET.fromstring(XML)
numbers = [e.attrib['Number'] for e in root.findall('.//ActionUnit')]
print(numbers)

输出

['45', '5']

【讨论】:

  • 当我尝试使用位置 Traceback(最近一次调用最后一次)时出现此错误:文件“C:\Users\LME_s\PycharmProjects\pythonProject1\main.py”,第 4 行,在 root = ET.fromstring(tree) 文件“C:\Users\LME_s\AppData\Local\Programs\Python\Python39\lib\xml\etree\ElementTree.py”,第 1347 行,在 XML parser.feed(text) 中TypeError:需要一个类似字节的对象,而不是'ElementTree'
  • 1) 您是否按原样尝试了我的代码?它奏效了吗? 2) 引发 he 异常的代码是什么?
  • 您的代码正在运行,但我需要使用地狱路径访问 XML 文件。所以这个块“root = ET.fromstring(XML)”对我不起作用。我尝试使用 root= tree.getroot() 函数,但它不会采用 2 个不同的值。
  • import xml.etree.ElementTree as ET tree = ET.parse('file_name.xml') root = tree.getroot()
  • TypeError: getroot() 接受 1 个位置参数,但给出了 2 个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-31
  • 2013-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-02
相关资源
最近更新 更多