【发布时间】:2019-06-29 08:12:27
【问题描述】:
使用python我需要在上面的行匹配时替换XML文件中的行。
<groupId>test</groupId>
<artifactId>dmrfolder</artifactId>
<version>1.0</version>
这里我想搜索dmrfolder,如果找到了,我需要将下面的1.0 替换为somevalue。
我按照以下方式进行操作,但它对我不起作用。
with open('test.xml', 'r') as file :
data = file.read()
fnl = data.replace(line[1], str)
with open('test.xml', 'w') as fw:
fw.write(fnl)
fw.close()
预期的结果是
<groupId>test</groupId>
<artifactId>dmrfolder</artifactId>
<version>somevalue</version>
【问题讨论】:
-
看一下lxml
-
XML 不是基于行的格式 - 您可以从 sn-p 中删除所有换行符,它同样有效并且包含 完全 相同的信息。 IOW:您要替换的不是“线”,而是元素节点(nlp.stanford.edu/IR-book/html/htmledition/…)。答案是:使用适当的 XML 解析器(DOM 或 SAX,取决于您的源 XML 大小等)。
-
尝试使用xmltodict。你可以读取一个文件,将其转换为 dict,更改值,然后将 de dict 重写为 xml 文件:gis.stackexchange.com/questions/202978/…
-
我是 python 新手。所以如果你能发布一个类似的示例代码会很有帮助。
标签: python shell search replace