使用 Python 编辑 XML 的特定标签以更改数字类型

editing specific tags of xml to change number type using python

提问人:Anna 提问时间:5/20/2023 更新时间:5/20/2023 访问量:36

问:

我有一个不同长度的 xml,我正在尝试从根本上编辑它,因此对于特定标签而不是科学数字(例如:),我将其替换为它的双精度(例如:)。<result>0.25e8</result><result>5.43656365692</result>

由于该功能,我正在尝试使用 python,因为它会更容易。float(x)

知道我如何修改 xml 的这些部分而不必保存它,或者只是通过迭代/阅读它吗?

谢谢!

python-3.x pandas xml 解析

评论

0赞 Michael Butscher 5/20/2023
您不能在文件中间插入或删除字节,除非在修改后的位置之后至少写入文件的整个剩余部分。因此,解析整个文件并将其加载到内存中或在读取时写入修改后的副本是有意义的。
1赞 STerliakov 5/20/2023
与?0.25e85.436...
0赞 STerliakov 5/20/2023
如果原始值和替换值的长度相同(或者您可以调整值以使其成立),则可以与例如 可调用的替换返回。您的文件有多大,因此就地修改的要求至关重要?mmapre.subbytes

答:

2赞 Hermann12 5/20/2023 #1

XML 仅包含文本,但如果可以的话:


import xml.etree.ElementTree as ET

xml_str ="""<root><result>0.25e8</result></root>"""

root = ET.fromstring(xml_str)

for elem in root.iter('result'):
    new_value = 2*float(elem.text)
    elem.text = str(new_value)
    
ET.dump(root)

输出:

<root><result>50000000.0</result></root>