将 XML 修改为 Python

Modify XML with Python

我有一个 XML 文件,我想修改并保存以备将来使用。我只想更改某些元素的文本,但是当我这样做时,它还会删除元素属性中的所有换行符:

<smth.xml
    attr1="name1"
    attr2="name2"
    smth="21315423"
    Debug="false" >

变成

<smth.xml attr1="name1" attr2="name2" smth="21315423" Debug="false">

我目前正在使用 lxml 库和 parser = etree.XMLParser(encoding='utf-8')

but when I do, it also deletes all the line breaks in element's attributes

这很正常。 Line-breaks XML 源代码中的属性之间不是 XML 数据模型的一部分。

您可以在手动编辑 XML 文件时输入它们,但是 XML 规范不要求解析器对它们给予任何关注,因为它们没有任何意义。所以实际上没有 XML 解析器可以(我不知道有一个 XML 解析器可以)。

我只能推荐一件事:克服它。不要试图留住他们,那是徒劳的,毫无意义的,也是行不通的。

加载XML,从中读取数据,修改,保存。不要为无关紧要的细节太过激动。