import pandas as pdf
import xml.etree.ElementTree as et
treefl = et.parse('429411newsML.xml')
treeroot = treefl.getroot()
news_title = treefl.find("title").text
itemids = treef1.find("newsitem")
if itemids is not None:
item_id = itemids.get['itemid']
else:
item_id = None
В приведенном выше коде я пытаюсь получить значение атрибута в XML-файле, где имя тега равно «newsitem», а имя атрибута - «itemid».
Когда яя пытаюсь вставить item_id в мой кадр данных pandas, используя код, упомянутый ниже, только None отображается в кадре данных, и если я случайно не вставил в оператор else, 'item_id' не определен. Если я попытаюсь использовать attrib [] вместо get, это тоже не поможет.
rows.append({"title" : news_title, "text" : node.text, "bip:topics" : news_codes_class, "dc.date.published" : news_date_published, "item_id" : item_id})
У меня не возникло проблем с извлечением других полей из файла xml, но, похоже, только это поле вызывает эту проблему. Ниже приведен фрагмент XML-файла
<?xml version="1.0" encoding="iso-8859-1" ?>
<newsitem itemid="429411" id="root" date="1997-03-10" xml:lang="en">
<title>EU: OFFICIAL JOURNAL CONTENTS - OJ L 66 OF MARCH 6, 1997.</title>