我有一个看起来像这样的XML文件!
<?xml version="1.0"?>
<root>
<child>
<add key="setid" value=".\print\data1" />
<add key="getid" value=".\print\data2" />
<add key="holdingid" value=".\print\data3" />
</child>
</root>
我想读取XML中的一行,搜索一个键匹配并用.\donotpritnnt\data1
我可以使用XMLPOKE和xpath在NANT中执行此操作。 尝试使用dict,list(替换为positionID),拆分(这里没有足够好的代码显示)
我该如何解决这个问题?
答案 0 :(得分:0)
假设您的XML代码位于工作目录中的 test.xml 。
new_content = []
with open("test.xml") as f:
content = f.readlines()
for line in content:
newline = line
if 'key="setid"' in line:
newline = line[:line.find("value=")] + 'value=".\donotpritnnt\data1" />\n'
new_content += [newline]
with open('test.xml', 'w') as f:
for line in new_content:
f.write(line)
它不是最好的方式,但它适用于您提供的示例,并且可能是可扩展的,因为它遍历文件并查看每一行。可能通过使用 regex 等进一步改进。