Кодирование XML-документа с помощью python?

В настоящее время я принимаю участие в Cyber ​​Challenge, однако меня попросили создать файл xml, который содержит узлы и атрибуты:

Generate a valid xml file at /tmp/vulnerable-countries.xml.
It should contain a list of country nodes attached to a root node
that have name attributes, the third node should be Panama.

Я везде искал информацию по этому поводу и пришел к следующему. Однако после отправки этого кода я получаю следующее:

import xml.etree.cElementTree as ET

root = ET.Element("root")
ET.SubElement(root, "Country")
ET.SubElement(root, "Country")
ET.SubElement(root, "Panama")
tree = ET.ElementTree(root)
tree.write("/tmp/vulnerable-countries.xml")

Неверный формат файла /tmp/vulnerable-countries.xml. Он должен содержать 3 узла страны с атрибутами имени, третий из которых — Панама.

Кто-нибудь может помочь?


person Unknown    schedule 01.03.2018    source источник


Ответы (1)


Сообщение об ошибке указывает, что вам необходимо включить атрибут с именем name для каждого из ваших country узлов. Попробуй это:

import xml.etree.cElementTree as ET

root = ET.Element("root")
ET.SubElement(root, "country", name="Narnia")
ET.SubElement(root, "country", name="Wakanda")
ET.SubElement(root, "country", name="Panama")
tree = ET.ElementTree(root)
tree.write("/tmp/vulnerable-countries.xml")

Результат:

<root><country name="Narnia" /><country name="Wakanda" /><country name="Panama" /></root>
person Robᵩ    schedule 01.03.2018
comment
10/10 Большое спасибо, это сработало и помогло мне понять XML! - person Unknown; 01.03.2018