XML не читается Python
Есть заданная форма xml. Внешняя часть выглядит так
И дальше этой части он не читает, хотя есть множество вложений. Если убрать всю информацию во внешней части он начинает читать все остальные вложения. Как считывать XML без потери информации во внешней части? Использую ElementTree
Так информация после name не считывается и при print(getroot) выводит <Element '{name3/name.xsd}name' at 0x0000000002A35720>
<name xmlns="gogle/name.xsd" xmlns:xsi="name2.org/2001/XMLSchema-instance" xsi:schemaLocation="name3/name.xsd">
<Craft>315</Craft>
<StartingSIP>95</StartingSIP>
<StartingSIPTime>2021-09-23T10:03:55</StartingSIPTime>
<Starting>1356</Starting>
<Sessions> ...... </Sessions>
</name>
Если сделать так весь остальной xml считывается
<name>
<Craft>315</Craft>
<StartingSIP>95</StartingSIP>
<StartingSIPTime>2021-09-23T10:03:55</StartingSIPTime>
<Starting>1356</Starting>
<Sessions> ...... </Sessions>
</name>
trees = ET.parse(filename)
root = trees.getroot()
for i in root:
print(i)
и выводит он
<Element 'Craft' at 0x0000000002A95EA0>
<Element 'StartingSIP' at 0x0000000002A95DB0>
<Element 'StartingSIPTime' at 0x0000000002A95770>
<Element 'Starting' at 0x0000000002A95C20>
<Element 'Sessions' at 0x0000000002A95B80>
Ответы (1 шт):
from lxml import etree
xml_raw = """<name xmlns="gogle/name.xsd" xmlns:xsi="name2.org/2001/XMLSchema-instance" xsi:schemaLocation="name3/name.xsd">
<Craft>315</Craft>
<StartingSIP>95</StartingSIP>
<StartingSIPTime>2021-09-23T10:03:55</StartingSIPTime>
<Starting>1356</Starting>
<Sessions> ...... </Sessions>
</name>"""
root = etree.fromstring(xml_raw)
for elem in root.getchildren():
if not elem.text:
text = "None"
else:
text = elem.text
print(elem.tag + " => " + text)
Вывод: {gogle/name.xsd}Craft => 315
{gogle/name.xsd}StartingSIP => 95
{gogle/name.xsd}StartingSIPTime => 2021-09-23T10:03:55
{gogle/name.xsd}Starting => 1356
{gogle/name.xsd}Sessions => ......
import xml.etree.ElementTree as ET
tree = ET.parse('1.xml')
root = tree.getroot()
for child in root:
print(child.tag, child.text)
Вывод: {gogle/name.xsd}Craft 315
{gogle/name.xsd}StartingSIP 95
{gogle/name.xsd}StartingSIPTime 2021-09-23T10:03:55
{gogle/name.xsd}Starting 1356
{gogle/name.xsd}Sessions ......
1.xml
<name xmlns="gogle/name.xsd" xmlns:xsi="name2.org/2001/XMLSchema-instance" xsi:schemaLocation="name3/name.xsd">
<Craft>315</Craft>
<StartingSIP>95</StartingSIP>
<StartingSIPTime>2021-09-23T10:03:55</StartingSIPTime>
<Starting>1356</Starting>
<Sessions> ...... </Sessions>
</name>