Как отформатировать структуру XML для всех файлов в путиPython

Программы на Python
Ответить
Гость
 Как отформатировать структуру XML для всех файлов в пути

Сообщение Гость »


Я хотел бы преобразовать этот XML:

? ? ? ? ? ? ? кому:

? ? ? ? ? ? По сути удалите первые 8 строк и последние 2 строки. Удалите все прокомментированные узлы и добавьте атрибуты xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" и xmlns:bsvc="urn:com.workday /bsvc" в первый узел/корневой узел.

Я попробовал этот код, но столкнулся с проблемами с префиксом.
импортировать ОС импортировать xml.etree.ElementTree как ET # Укажите путь к каталогу, в котором расположены ваши XML-файлы путь_каталога = '/Пользователи/Путь_к файлу/' # Определите сопоставления пространств имен пространства имен = { 'soapenv': 'http://schemas.xmlsoap.org/soap/envelope/', 'bsvc': 'urn:com.workday/bsvc' } # Перебираем XML-файлы в каталоге и обрабатываем их для имени файла в os.listdir(directory_path): если имя_файла.endswith('.xml'): # Создаём полный путь к файлу путь_файла = os.path.join(путь_каталога, имя файла) # Читаем содержимое XML из файла с open(file_path, 'r') как файлом: xml_lines = file.readlines() # Удаляем первые 8 строк и последние 2 строки модифицированные_линии = xml_lines[8:-2] # Объединяем измененные строки обратно в строку модифицированный_xml = ''.join(modified_lines) # Создайте новый корневой элемент с объявлениями пространства имен root = ET.Element('{http://schemas.xmlsoap.org/soap/envelope/}Конверт', nsmap=namespaces) # Разбираем измененное содержимое XML и добавляем его в новый корень модифицированный_корень = ET.fromstring(modified_xml) root.extend(modified_root) # Удалить все прокомментированные узлы для элемента в root.iter(): для ребенка в элементе: если child.tag == ET.Comment: элем.удалить(дочерний) # Конвертируем измененный XML обратно в строку модифицированный_xml = ET.tostring(корень, кодировка='utf8').decode() # Перезаписать исходный файл измененным содержимым с open(file_path, 'w') как файлом: file.write(modified_xml) print(f"Обработано и перезаписано: {file_path}")
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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