我有一个XML文档“data.xml”: 我需要编写python脚本,它可以用新的数字替换标签'Num'的所有值节点,并将其写回磁盘。 区别在于新值不是字符串,而是一系列连续增加的数字,如1000,1100,1200,1300 ...... 我在网上做过研究,大多数代码样本都是字符串替换,而不是这样的变量替换。有人有好主意吗?样本如下:
改变之前:
<Param><Num>123</Num></Param>
<Param><Num>123</Num></Param>
<Param><Num>123</Num></Param>
:
<Param><Num>1000</Num></Param>
<Param><Num>1100</Num></Param>
<Param><Num>1200</Num></Param>
答案 0 :(得分:1)
使用lxml库
非常容易实现from lxml import objectify
class Parser(object):
def __init__(self, tree, counter_start, counter_interval):
self.tree = tree
self.root = tree.getroot()
self.counter_start = counter_start
self.counter_interval = counter_interval
def parse(self):
counter = self.counter_start
# for loop to iter voltage items
# using counter += counter_interval to set the value for example
# save the tree within the parser class or in the handle function
def handle(file):
f = open(file)
tree = objectify.parse(f)
parser = Parser(tree, 1000, 100)
parser.parse()
f.close()
handle("/Desktop/bar.XML")