python成功完成xml文件的解析、替换、保存

1 篇文章 0 订阅
1 篇文章 0 订阅

python成功完成xml文件的解析、替换、保存

1.库
import xml.etree.cElementTree as ET
import re
2.需求描述
  • 将kml文件中的部分内容替换为指定名称
  • 实现保存
  • kml文件示例:
<kml>
  <customer ID="C001">
    <Document>>cme Inc.</Document>
    <phone>12345</phone>
    <Placemark>
		<name>泊岸时光印-1-4</name>
		 <phone>12345</phone>
  </Placemark>
</kml>
3. 解析xml
import xml.etree.eElementTree as ET
tree = ET.parse(r'file_path')#file_path填写自己的文件路径即可,载入数据
root = tree.getroot()  #获取根节点
#print(root.text)
from name in root.iter('Placemark'):
	print(name[0].text)
	print(phone[1].text)
	name[0].text='凤凰大道199号泊岸时光印22幢1单元4楼'  #修改
	print(name[0].text)
	tree.write('new.kml','UTF-8')  #保存
4.正则修改

使用正则表达式对单元号和楼号进行定位替换修改,需要先定位到目标数据

import re
room='<name>泊岸时光印-1-4</name>'
new_room = re.findall(r'(?<=时光印.)\d+-\d',name[0].text) #获取到单元号和楼号   ['1-4']
room_str = "".join(new_room )  #将其转为str 8-3
split_room = re.findall(r'\d+',room_str)  #将单元号和楼号分开   8 3
print(split_room[0],split_room[1])
5.替换保存,大功告成
import xml.etree.eElementTree as ET
import re

tree = ET.parse(r'file_path')#file_path填写自己的文件路径即可,载入数据
root = tree.getroot()  #获取根节点
#print(root.text)
from name in root.iter('Placemark'):
	print(name[0].text)
	print(phone[1].text)
	room='<name>泊岸时光印-1-4</name>'
	new_room = re.findall(r'(?<=时光印.)\d+-\d',name[0].text) #获取到单元号和楼号   ['1-4']
	room_str = "".join(new_room )  #将其转为str 8-3
	split_room = re.findall(r'\d+',room_str)  #将单元号和楼号分开   8 3
	print(split_room[0],split_room[1])
	new_name = '凤凰大道199号泊岸时光印22幢{}单元{}楼'.format(split_room[0],split_room[1])
	name[0].text=new_name #修改
	print(name[0].text)
	tree.write('new.kml','UTF-8')  #保存
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值