大きな 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() を呼び出すと、ファイルが更新されません。誰かが私のやり方の誤りを親切に指摘してもらえますか. ありがとう!