У меня есть следующий XML-документ, сохраненный с помощью Notepad ++ в кодировке ISO-8859-15:
<?xml version="1.0" encoding="ISO-8859-15"?>
<someTag>
</someTag>
Я пытаюсь разобрать этот файл с помощью bs4, но каким-то образом (даже при указании кодировки везде, о котором я могу думать) я получаю пустой результат:
filepath = 'iso-8859-15_example.xml'
with open(filepath, encoding="iso-8859-15") as f:
soup = BeautifulSoup(f, 'xml', from_encoding="iso-8859-15")
print(soup)
# --> "<?xml version="1.0" encoding="utf-8"?>", otherwise empty
Удаление подсказок кодирования в коде Python не помогает. Но странно то, что работает, удаляя первую строку XML-файла, который является оператором <?xml ... ?>
(я думаю, что он называется прологом).
Что я здесь не так делаю? Я думал, что пролог поможет bs4 «сделать правильную вещь» и выбрать правильную кодировку. Есть ли альтернатива удалению пролога / мессинга с кодировкой XML-файла?