打开多个 xml 个文件,并解析它们

Open multiple xml files, and parse them

我需要你的帮助。 我试图从一个文件夹中读取许多 xlm 文件,我需要提取每个 xml 的一些信息。这些xml具有相同的结构。

此时我可以读取每个XML文件,但只捕获最后一个打开的信息。如何捕获每个 xml 文件的信息并保存到 pandas 的数据帧结构中?

这是我的代码:

from os import listdir, path
import xml.etree.ElementTree as ET

mypath = '/Users/nicolasdiaz/Desktop/dtes copy'
files = [path.join(mypath, f) for f in listdir(mypath) if f.endswith('.xml')]

for file in files:
    print(file)
    tree = ET.parse(file)
    root = tree.getroot()

for docID in root.iter('Folio'):
    Invoice = 'Factura:' + docID.text
    print(Invoice)
for client_rut in root.iter('RUTRecep'):
    Rut = 'Rut:' + client_rut.text
    print(Rut)

这是我的结果:,但是我需要三个xml文件的信息

/Users/nicolasdiaz/venv/bin/python 
"/Users/nicolasdiaz/PycharmProjects/Marfil/lib/python3.10/Open files.py"
/Users/nicolasdiaz/Desktop/dtes copy/77116757-T33-F1877.xml
/Users/nicolasdiaz/Desktop/dtes copy/77116757-T33-F1960.xml
/Users/nicolasdiaz/Desktop/dtes copy/77116757-T33-F1961.xml
Factura:1961
Rut:93770000-8

Process finished with exit code 0
  1. 将下面的两个for循环移到上面的for循环中,像这样:

    from os import listdir, 路径 将 xml.etree.ElementTree 导入为 ET

mypath = '/Users/nicolasdiaz/Desktop/dtes 复制' files = [path.join(mypath, f) for f in listdir(mypath) if f.endswith('.xml')]

对于文件中的文件: 打印(文件) 树 = ET.parse(文件) 根 = tree.getroot()

for docID in root.iter('Folio'):
    Invoice = 'Factura:' + docID.text
    print(Invoice)
for client_rut in root.iter('RUTRecep'):
    Rut = 'Rut:' + client_rut.text
    print(Rut)
  1. 在 for 语句之前和循环中创建一个数据帧,使用以下方法附加到它:

    df.append([文件、发票、车辙])