XML изменить имя тега с помощью Python - PullRequest
0 голосов
/ 21 февраля 2019

Очень плохо знаком с XML и Python.Я хочу изменить имена тегов определенных элементов в документе XML.Вот как теперь выглядит документ:

<Company>
   <Employee>
      <SSN>111111111</SSN>
      <Dependent>
          <SSN>222222222</SSN>

Я хочу изменить тег в Employee на 'EESSN' и оставить тег в зависимом элементе таким же.Чтобы выглядеть следующим образом.

<Company>
   <Employee>
      <EESSN>111111111</EESSN>
      <Dependent>
          <SSN>222222222</SSN>

Документ включает в себя сотни компаний и тысячи сотрудников, имеющих от десятков до сотен подэлементов, поэтому я считаю, что мне нужен вариант поиска и замены.

Я хочу использовать модуль ElementTree.Единственный код, который у меня работает, - это импорт данных и запись их в новый файл.Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 21 февраля 2019

Если вы хотите использовать ElementTree, вы можете найти все SSN элементы, которые являются потомками Employee и установлены tag.

Пример ...

Вход (input.xml)

<Company>
    <Employee>
        <SSN>111111111</SSN>
        <Dependent>
            <SSN>222222222</SSN>
        </Dependent>
    </Employee>
</Company>

Python

import xml.etree.ElementTree as ET

tree = ET.parse("input.xml")

for elem in tree.findall("Employee/SSN"):
    elem.tag = "EESSN"

tree.write("output.xml")

Выход (output.xml)

<Company>
    <Employee>
        <EESSN>111111111</EESSN>
        <Dependent>
            <SSN>222222222</SSN>
        </Dependent>
    </Employee>
</Company>
...