0

我有一个 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>

4

1 回答 1

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")
于 2012-09-03T07:12:44.457 回答