将 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,从中读取数据,修改,保存。不要为无关紧要的细节太过激动。
我有一个 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,从中读取数据,修改,保存。不要为无关紧要的细节太过激动。