python提取xml某个节点中的内容_用python提取xml中需要的节点

本文介绍了如何使用Python的ElementTree库解析XML文件,并通过正则表达式查找匹配的节点。文章提供了实现代码,包括输入参数检查、节点查找和结果保存。在测试中,代码能成功匹配并提取符合条件的节点。

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

新领导给的小任务,业余时间完成,嗯,业余时间。

还好任务很简单:从XML文件中挑选出具有某个标识的节点。

核心功能

核心功能:解析xml,用正则匹配节点的一个属性,如果匹配成功,保存该节点。

xml解析库的选择

python解析xml,度娘搜下去(对,我作为一个前程序员不咋用谷歌,这大概就是我成为前程序员的原因吧),最常见的是minidom,minidom需要逐层解析,本需求要解析的xml结构好像不止一种,用这个库比较费力,排除。

后来发现了elementTree,这个库存在迭代器,可以从根节点向下迭代,找到想找到节点,而且使用简单,就是它。

为了试验功能,从网上随便找了个小xml,为了保证能够查找出所有匹配的结果,粘了个假的user3,age属性和user1相同,其他均不同。

admin

admin@qq.com

23

user

user@qq.com

22

admia

admia@qq.com

23

查找匹配节点并保存

def findblocks(self):

for i in self.root.iter(self.blockType):

desc = i.find(self.type).text

if desc :

if re.search(self.reStr,desc):

self.saveMatchCfg(i)

def saveMatchCfg(self,matchNode):

self.resultRoot.append(matchNode)

将新的tree写入xml

def saveXML(self):

tree = ET.ElementTree(self.resultRoot)

tree.write(self.resultFile, encoding="utf-8", xml_declaration=True)

用写死的参数测试,基本功能已经能满足,在当使用 age 23 来过滤时能匹配到1,3。

核心功能完成。

友好性和可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值