0

XML ドキュメント "data.xml" があります。タグ 'Num' を持つすべての値ノードを新しい数値に置き換えてディスクに書き戻すことができる Python スクリプトを作成する必要があります。違いは、新しい値が文字列ではなく、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 に答える