返回列表 发帖

[已解决]35求助 读取XML文件指定信息

解析每个ID的信息  <ID></ID>   其中的UserType,  UserVendorId, UserSubType, Flags以及注释信息 保存成txt    用python写最好
<?xml version="1.0" encoding="UTF-8" standalone="no"?>

OK  已转账

TOP

回复 3# qianshang
19行,自行选择修改
有数字
m=re.findall(r'<ID\d+>[\s\S]+?<\/ID\d+>',text)COPY
无数字
m=re.findall(r'<ID>[\s\S]+?<\/ID>',text)COPY
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

感谢大佬  还有个问题就是这里面<ID1>....<ID5>    跟后面<ID>...</ID>数据其实是重复的  这个可以只取一次么

TOP

# encoding: utf-8
# Python 3.6.0
import os
import codecs
import re
path='.'
arr=os.listdir(path)
for it in arr:
    file=os.path.join(path, it)
    if os.path.isfile(file) and (it[-4:].lower()=='.xml'):
        print(file)
        f=codecs.open(file,'r','utf-8')
        text=f.read()
        f.close()
        txtfile=file+'.txt'
        f=codecs.open(txtfile,'w','gb2312')
        m=re.findall(r'<ID\d*>[\s\S]+?<\/ID\d*>',text)
        for it in m:
            brr=['','','','','']
            a=re.search(r'[^>]+(?=<\/UserType>)',it)
            if a:
                brr[0]=a.group(0)
            b=re.search(r'[^>]+(?=<\/UserVendorId>)',it)
            if b:
                brr[1]=b.group(0)
            c=re.search(r'[^>]+(?=<\/UserSubType>)',it)
            if c:
                brr[2]=c.group(0)
            d=re.search(r'[^>]+(?=<\/Flags>)',it)
            if d:
                brr[3]=d.group(0)
            e=re.search(r'(?<=<!--)[^>]+(?=-->)',it)
            if e:
                brr[4]=e.group(0)
            line='\t'.join(brr)
            f.write(line+'\r\n')
        f.close()COPY
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

返回列表