извлечение набора элементов из схемы xml - PullRequest
0 голосов
/ 23 апреля 2020

как я могу использовать Python код для извлечения красной части этого изображения ? Точнее, мне нужен атрибут "name" каждого элемента xs: вроде PURPOSE_CD, TYPE_CD и т. Д. Я пытался использовать этот код, но он не работает

import xml.etree.ElementTree as ET
for item in root.findall('NewDataSet'):
  print('found')
  item_text=item.findall("xs:element").text
  item_name=item.get('name')
  print(item_name)

Большое спасибо

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

Нашли это! Вот ответ:

columns=tuple([(elem.attrib['name'], elem.tag) for elem in root.getiterator() 
               if elem.tag=="{http://www.w3.org/2001/XMLSchema}element" and elem.text==None])

Спасибо

0 голосов
/ 23 апреля 2020

Может быть, я не мог хорошо объяснить мой ответ Йенсу (спасибо!). Если я использую:

for item in root.findall('//xs:element'):

, я получаю

SyntaxError: cannot use absolute path on element

Если вместо этого я пишу:

root = etree.XML(my_xml)
root.xpath('//xs:element[@name="OfferteOperatori"]/xs:complexType/xs:sequence/xs:element')

, тогда я получаю

XPathEvalError: Undefined namespace prefix

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...