原始xml文件如下,品系编号仅有数字
修改后xml文件,品系编号为品种+数字
# 自带库不需要安装
from lxml import etree
import xml.etree.ElementTree as ET
# 解析XML文件
tree = etree.parse(r"E:\飞书下载\ycpg_gtxx.XML")
# 获取根元素
root = tree.getroot()
# 指定命名空间前缀
namespaces = {"s":'uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882',"dt":'uuid:C2F41010-65B3-11d1-A29F-00AA00C14882',"rs":'urn:schemas-microsoft-com:rowset',"z":'#RowsetSchema'}
# 查找具有PZBH和PXBH属性的元素
for element in root.findall('.//*[@PZBH][@PXBH]'):
pzbh_value = element.get('PZBH')
# 只取品系编号后两位,避免“YYYY01”等情况
pxbh_value = element.get('PXBH')[-2:]
# 将PZBH的值添加到PXBH的值之前
new_pxbh_value = pzbh_value + pxbh_value
# 更新PXBH的属性值
element.set('PXBH', new_pxbh_value)
# 指定命名空间前缀
for prefix, uri in namespaces.items():
etree.register_namespace(prefix, uri)
# 保存修改后的XML文件
tree.write(r"E:\飞书下载\ycpg_gtxx_out.xml")