Изменение значения элемента в существующем XML-файле с использованием DOM - PullRequest
3 голосов
/ 18 марта 2010

Я пытаюсь найти примеры того, как изменить существующее значение XML-файла. Значение элемента.

Используя следующий пример xml:

<book>
  <title>My Book</title>
  <author>John Smith</author>
</book>

Если бы я хотел заменить значение элемента author 'John Smith' на 'Jim Johnson' в скрипте Python с использованием DOM, как бы я поступил так? Я пытался найти примеры по этому поводу, но потерпел неудачу в этом. Любая помощь будет принята с благодарностью.

С уважением, Rylic

1 Ответ

5 голосов
/ 18 марта 2010

1001 *, предполагающий *

s = '''
<book>
  <title>My Book</title>
  <author>John Smith</author>
</book>'''

DOM будет выглядеть так:

from xml.dom import minidom

dom = minidom.parseString(s) # or parse(filename_or_file)
for author in dom.getElementsByTagName('author'):
    author.childNodes = [dom.createTextNode("Jane Smith")]

Но я бы посоветовал вам заглянуть в ElementTree, он делает работу с XML легкой:

from xml.etree import ElementTree

et = ElementTree.fromstring(s) # or parse(filename_or_file)
for author in et.findall('author'):
    author.text = "Jane Smith"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...