Редактирование XML с сохранением форматирования "как есть"
Мне нужно внести несколько изменений в существующие XML-файлы, сохранив при этом форматирование(без этого файл не будет прогружаться на базовую станцию). Использую Beautiful Soup. Учитывая множество XML-библиотек python,делал ли кто-нибудь что-то подобное. Мой код:
from bs4 import BeautifulSoup
fd = open('1.xml', 'r')
xml_file = fd.read()
soup = BeautifulSoup(xml_file, 'lxml')
for tag in soup.findAll(n="maxUeRbNumDl"):
tag['v'] = '50'
for tag in soup.findAll(n="tac"):
tag['v'] = '8500'
for tag in soup.findAll(n="maxUeRbNumUl"):
tag['v'] = '23'
with open('2.xml', 'w') as f:
f.write(str(soup))
Исходный вид xml:
<T n="productName" v="BS8700" />
<T n="productNumber" v="2" />
После скрипта:
<t n="productName" v="BS8700"></t>
<t n="productNumber" v="2"></t>
Ответы (1 шт):
Автор решения: Sergey Melekhin
→ Ссылка
Проблема решилась сменой парсера:
soup = BeautifulSoup(xml_file, 'lxml-xml')
lxml - это html парсер, для xml нужен lxml-xml.