1

大きな xml ファイルを解析できるようにする必要がありますが、要素を探し<name>て値を置き換えるだけです。したがって、次のようにイベント駆動型の解析を行っています。次のコードがあります。

import os, re, sys
from lxml import etree


# parse the xml file
context = etree.iterparse(xmlFile, events=('end',), tag='name')


for event, elem in context:

    # this is an internal method that I call to perform regex
    newElementText = searchReplace(elem.text).replace(" ", "")

    # assign the elem.text to the replaced value
    elem.text = newElementText

    # write to the xml
    etree.tostring(elem, encoding='utf-8')

私の問題は、更新された要素の値をファイルに書き込むことです。etree.tostring() を呼び出すと、ファイルが更新されません。誰かが私のやり方の誤りを親切に指摘してもらえますか. ありがとう!

4

1 に答える 1

0

etree.tostring(elem)ツリーの文字列表現を返すため、コードでは何もしません。を使用しelem.write(xmlFile, encoding='utf-8')ます。

于 2012-04-20T23:56:35.253 に答える