0
I次のコードを持っている:私はそれを実行したときにXML属性の変更は保存されない
def incrCount(root):
root.attrib['count'] = int(root.attrib['count']) + 1
# root.set('count', int(root.attrib['count']) + 1)
root = getXMLRoot('test.xml')
incrCount(root)
print root.attrib['count']
、正しい値が印刷されたが、その変更は、実行の終了時にファイルに表示決してありません。私は上記の両方の方法を成功しないように試みました。誰かが私が間違っていた箇所を指摘できますか?
:
ElementTree
のroot
参照インスタンスを仮定すると、あなたは、この目的のためにElementTree.write()
方法を使用することができます。それらをファイルに入れたい場合は、自分で書き込む必要があります。 [tostring](https://docs.python.org/3.5/library/xml.etree.elementtree.html#xml.etree.ElementTree.tostring)を使用して、結果を '' wb ''モードで開いたファイルに書き込みます。 – bbayles@bbaylesファイルを直接変更できると思った。しかし、私はETモジュールで何かを見つけることを望んでいました。しかたがない。その場合、メソッドの設定はいつ有効ですか? – mjr
ファイルはディスクからテキストのストリームとして読み込まれ、メモリ内のノードに解析されます。保存されると(明示的に)、その逆が起こります。大きなファイルの属性を追加または変更するために、残りのテキストをシャッフルする際のオーバーヘッドを考慮してください。 – Mike