Объединяйте, удаляйте и пропускайте через фильтр XML-файлыPython

Программы на Python
Anonymous
Объединяйте, удаляйте и пропускайте через фильтр XML-файлы

Сообщение Anonymous »

Я пытаюсь обработать XML-данные с сайта https://www.marktstammdatenregister.de/ ... endownload
Я скачал несколько наборов данных для определенной технологии, например Netzanschlusspunkte. Первым шагом будет удаление определенных столбцов. Вторым шагом будет объединение файлов.

Код: Выделить всё

import pandas as pd
import xml.etree.ElementTree as ET
import os, psutil
from bs4 import BeautifulSoup as b
path='....'
for filename in os.listdir(path):
if not filename.endswith('.xml'):continue
fullname = os.path.join(path,filename)
tree1 = ET.parse(fullname)
root1 = tree1.getroot()

path='....'
for filename in os.listdir(path):
if not filename.endswith('.xml'):continue
fullname = os.path.join(path,filename)
tree2 = ET.parse(fullname)
root2 = tree2.getroot()

names_to_delete = ['NetzanschlusspunktMastrNummer','LetzteAenderung']

for grandchild in list(root):
if grandchild.attrib in names_to_delete:
root.remove(grandchild)

def merge_namespaces(root1,root2):
for prefix, uri in root1.nsmap.items():
if prefix not in root2.nsmap.values():
ET.register_namespace(prefix,uri)

#Merge namespaces
merge_namespaces(root1, root2)

#Append elements from the second XML file to the first XML file
for elem in root2:
root1.append(elem)

#Create a new ElementTree object with the merged root
merged_tree = ET.ElementTree(root1)

#Write the merged XML to a new file
merged_tree.write('', encoding = 'utf-8', xml_declaration = True)
На последнем шаге я получаю ошибку AttributeError: объект «xml.etree.ElementTree.Element» не имеет атрибута «nsmap»
I думаю, проблема связана с тем, что я пытаюсь преобразовать str в байты, но не знаю, как это сделать.
Я также пытался просмотреть файл через trostring, чтобы получите лучшее понимание, но файл слишком большой -> Ошибка Javascript: слишком много рекурсии
Вот образец для Wind:
Изображение

Вот образец для Netzanschlusspunkt:
Изображение

На самом деле в файлах гораздо больше столбцов.

Подробнее здесь: https://stackoverflow.com/questions/787 ... -xml-files

Вернуться в «Python»