Python で XML ドキュメント内のノードの値を設定する
-
05-07-2019 - |
質問
XML ドキュメント「abc.xml」があります。
タグ「name」を持つ値ノードを新しい値に置き換えてディスクに書き戻す関数 replace(name, newvalue) を作成する必要があります。これはPythonでも可能でしょうか?これはどうすればよいでしょうか?
解決
import xml.dom.minidom
filename='abc.xml'
doc = xml.dom.minidom.parse(filename)
print doc.toxml()
c = doc.getElementsByTagName("c")
print c[0].toxml()
c[0].childNodes[0].nodeValue = 'zip'
print doc.toxml()
def replace(tagname, newvalue):
'''doc is global, first occurrence of tagname gets it!'''
doc.getElementsByTagName(tagname)[0].childNodes[0].nodeValue = newvalue
replace('c', 'zit')
print doc.toxml()
# cat abc.xml
<root>
<a>
<c>zap</c>
</a>
<b>
</b>
</root>
他のヒント
確かにそれは可能です。xml.etree.ElementTree モジュールは、XML の解析、タグの検索、値の置換に役立ちます。
変更する XML ファイルについてもう少し詳しく知っていれば、任意の XML ファイルを処理する汎用関数を作成する必要がある場合よりも、おそらくタスクをもう少し簡単にできるでしょう。
DOM 解析にすでに慣れている場合は、ElementTree パッケージの代わりに xml.dom パッケージを使用できます。
所属していません StackOverflow