質問

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()

ミニドームプライマーおよび APIリファレンス

# cat abc.xml
<root>
  <a>
    <c>zap</c>
  </a>
  <b>
  </b>
</root>

他のヒント

確かにそれは可能です。xml.etree.ElementTree モジュールは、XML の解析、タグの​​検索、値の置換に役立ちます。

変更する XML ファイルについてもう少し詳しく知っていれば、任意の XML ファイルを処理する汎用関数を作成する必要がある場合よりも、おそらくタスクをもう少し簡単にできるでしょう。

DOM 解析にすでに慣れている場合は、ElementTree パッケージの代わりに xml.dom パッケージを使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top