2

次のxmlが与えられます:

<!-- file.xml -->
<video>
    <original_spoken_locale>en-US</original_spoken_locale>
    <another_tag>somevalue</another_tag>
</video>

<original_spoken_locale>タグ内の値を置き換える最良の方法は何でしょうか?値を知っていれば、次のようなものを使用できます。

with open('file.xml', 'r') as file:
    contents = file.read()
new_contents = contents.replace('en-US, 'new-value')
with open('file.xml', 'w') as file:
    file.write(new_contents)

ただし、この場合、値がどうなるかわかりません。

4

1 に答える 1

8

これは、ElementTreeを使用するとかなり簡単です。text要素の属性の値を置き換えるだけです。

>>> from xml.etree.ElementTree import parse, tostring
>>> doc = parse('file.xml')
>>> elem = doc.findall('original_spoken_locale')[0]
>>> elem.text = 'new-value'
>>> print tostring(doc.getroot())
<video>
    <original_spoken_locale>new-value</original_spoken_locale>
    <another_tag>somevalue</another_tag>
</video>

en-USドキュメントの別の場所に置くことができるので、これもより安全です。

于 2012-06-22T19:57:40.353 に答える