python解析xml文件

本文介绍了一种使用Python解析特定目录下所有XML文件的方法,并从中提取Arabic文本内容。通过遍历目录中的XML文件,利用xml.dom.minidom模块解析每个文件并提取<body>标签内的<element>元素数据,最终将提取到的文本写入到对应的TXT文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 目的:

  1. 本代码适用于解析xml中element元素,对应于本应用中为读取阿拉伯文字;不能解析id,start,end等隐藏字段;其中该隐藏字段可以采用linux,grep指令也读取。
  2. 本代码提供循环遍历,只需要把所有的的xml拷入到目录“D:\DeepLearning\data\mgb2_dev\”中,即可以生成解析后的txt文件。

2. 代码如下:

下面展示一下 具体代码

import os
import xml.dom.minidom
f_list = os.listdir('D:\\DeepLearning\\data\\mgb2_dev\\')
# read all xml file in the document of mgb2_dev 
def process(xmlfile, f1):
    xmlfile = 'D:\\DeepLearning\\data\\mgb2_dev\\'+xmlfile
    DomTree = xml.dom.minidom.parse(xmlfile)
    annotation = DomTree.documentElement
    # 获取全部的object,并且裁剪出该部分进行保存
    objectlist = annotation.getElementsByTagName('body')
    # 因为object有很多个,组成一个list
    for object in objectlist:
        # 下面这两句是得到该object的segment,注意两个尖括号夹起来的都是str类型
        bndbox = object.getElementsByTagName('segment')

        for box in bndbox:
            # id = box.attribute.id.nodeValue
            list = []
            xin = box.getElementsByTagName('element')
            for x1 in xin:
                x1 = x1.childNodes[0].data
                list.append((x1))
                list.append(' ')
            #print(list)
            str = ''.join(list) # 把一个segment读完之后一起输出
            f1.write(str + '\n')

for i in f_list:
     if os.path.splitext(i)[1] == '.xml':
         print(os.path.splitext(i)[0])
         str = os.path.splitext(i)[0]
         strr = 'D:\\DeepLearning\\data\\dev_text\\'+str+'.txt'
         f = open(strr,'w',encoding='UTF-8')
         process(i,f) # 读取一个xml中所有的segment/elemnt,并将每一个segment按行输出
         f.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值