Мне нужно извлечь / изменить дочерний элемент из XML-файла, используя Python. Для этого я использую xml.etree.ElementTree, но не могу получить желаемый результат из своего кода. Мне нужно извлечь элемент "name" в разделе "deploy" (в данном случае xyz1000_Test_v1) из файла .xml:
<?xml version="1.0" encoding="utf-8"?>
<esc
xmlns="http://www.test.com/esc/esc">
<tenants>
<tenant>
<name>esc</name>
<deployments>
<deployment>
<name>xyz1000_Test_v1</name>
<networks>
<network>
<name>tenant_1</name>
<admin_state>true</admin_state>
<subnet>
<name>tenant_1_sub</name>
<ipversion>ipv4</ipversion>
**<address>10.25.0.0</address>**
</subnet>
</network>
<network> .....
Это код, который я использую:
import xml.etree.ElementTree as ET
tree = ET.parse('csr1kv_file.xml')
root = tree.getroot()
ET.register_namespace("","http://www.test.com/esc/esc")
for DeploymentName in root.iter('{http://www.test.com/esc/esc}name'):
print(DeploymentName.text)
name.text="New deplaoyment name"
Однако из кода я получаю значение элемента в разделах «развертывание», «сеть» и «подсеть». Как я могу получить доступ к определенному элементу? Заранее спасибо.
Обновление:
Пытаясь вывести "имя" из элемента "сеть", у меня есть этот код. К сожалению, это не дает мне ожидаемого ответа:
for network in root.findall('{http://www.test.com/esc/esc}network'):
name = network.find('name').text
print(name)