首页 > 解决方案 > 用 Python 修改 XML

问题描述

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

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

变成

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

我目前正在使用lxmllibparser = etree.XMLParser(encoding='utf-8')

标签: pythonpython-2.7lxml

解决方案


但是当我这样做时,它也会删除元素属性中的所有换行符

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

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

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

加载 XML,从中读取数据,修改它,保存它。不要对不相关的细节过于激动。


推荐阅读