Я пытаюсь использовать дерево элементов в python для анализа XML-файла. Я приложил снимок XML-данные . Мне нужно вытащить все, что находится под тегом TimeSeries, и экспортировать его как CSV.
Я сохранил файл на своем компьютере, поэтому в коде указано имя save.xml. Я попытался просто взять mRID и CurveType в качестве примера, и это не сработало для меня. Это код, который я попробовал.
import xml.etree.cElementTree as ET
tree = ET.parse('save.xml')
root = tree.getroot()
for TimeSeries in root.findall('TimeSeries'):
mRID = TimeSeries.find('mRID').text
curve = TimeSeries.get ('curveType')
Как мне взять все, что находится под тегом timeseries, и экспортировать как CSV?
- РЕДАКТИРОВАТЬ ДЛЯ ТОГО, ЧТОБЫ ТАК ЖЕ ПРОБЛЕМА -
код теперь становится таким, потому что нам нужно добавить пространство имен (или удалить его, если это проще) в начале тегов:
#fix namespace issue
ns = {'s': 'urn:iec62325.351:tc57wg16:451-6:generationloaddocument:3:0'}
# use s and namespace in front of all findall
for TimeSeries in root.findall('s:TimeSeries', ns):
mRID = TimeSeries.find('s:mRID', ns)
businessType = TimeSeries.find('s:businessType', ns)
objectAggregation = TimeSeries.find('s:objectAggregation', ns)
unit = TimeSeries.find('s:quantity_Measure_Unit.name', ns)
curveType = TimeSeries.find('s:curveType', ns)