大表哥汽车人 2022-08-28 17:32 采纳率: 0%
浏览 30
已结题

Python对xml文件进行修改报错UnicodeDecodeError

问题遇到的现象和发生背景

使用Python对xml文件进行编辑,定位到某节点然后将其删除掉,但是使用remove删除节点的语句处一直被报错UnicodeDecodeError。在网上找相似的问题解决方案也不能解决我的问题。我的python版本为3.9.7.

问题相关代码,请勿粘贴截图
try:
    import xml.etree.cElementTree as ET
except ImportError:
    import xml.etree.ElementTree as ET

with open(r'E:\03_ZD_Private\03_PyPrjs\createACfileAndWrite\createACfileAndWrite\MCAL_Modules.arxml',encoding='utf-8') as mcal_arxml:
    mcalTempLines=mcal_arxml.readlines() # 将arxml文件内容载入内存
   

with open(r'E:\03_ZD_Private\03_PyPrjs\createACfileAndWrite\createACfileAndWrite\McalModules000.xml','w',encoding='utf-8') as test_xml:
    test_xml.writelines(mcalTempLines)

test_tree = ET.parse('McalModules000.xml')# 载入,返回解析树
test_root = test_tree.getroot() # 获取root元素
print("the test_root tag is ", test_root) # 仅仅打印根元素的tag
print(test_root.tag, ":", root.attrib)  # 打印根元素的tag和属性
yy = test_root[0][8][0].text # 将root的第一个子节点的第八个子节点的第一个子节点的值赋给yy
print('the firs value short name: ',yy)# 打印root里第一个子节点的第八个子节点的第一个子节点也就是SHORT-NAME

ar_packages = 'AR-PACKAGES'# '{http://autosar.org/schema/r4.0}AR-PACKAGES'
ar_package  = 'AR-PACKAGE'
 # '{http://autosar.org/schema/r4.0}AR-PACKAGE'
shortName   = 'SHORT-NAME'# '{http://autosar.org/schema/r4.0}SHORT-NAME'

for ar_package in test_root.findall('.//AR-PACKAGE'):# ('.//{http://autosar.org/schema/r4.0}AR-PACKAGE'):
    print(ar_package.tag)
    # children=ar_package.getchildren()
    # print("these are the children of arpack: ------",children)
    packNm = ar_package[0].text
    packDefRef = ar_package[1][0][1].tag
    print(packNm)
    print(packDefRef)
    cnt1=cnt1+1
    if packNm=='Can':
        canModNum=cnt1
        print("find This Package !!!!!!!!!!",canModNum)
        test_root.remove(ar_package)

test_root.write('temp00.xml',encoding='utf-8',xml_declaration=True)

运行结果及报错内容

报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 732: invalid start byte

我的解答思路和尝试过的方法

img

  • 写回答

3条回答 默认 最新

  • 快乐小土狗 2022-08-28 21:11
    关注
    评论

报告相同问题?

问题事件

  • 系统已结题 9月6日
  • 赞助了问题酬金10元 8月29日
  • 修改了问题 8月28日
  • 创建了问题 8月28日

悬赏问题

  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型
  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)
  • ¥15 matlab代码 关于微分方程和嵌套的分段函数。