Может ли BeautifulSoup анализировать xml, когда определенный тег является самозакрывающимся и не в то же время
Ситуация следующая.
XML-файл:
- Довольно печатать XML в Python
- Python ElementTree find () не соответствует в файле kml
- Проверка XML (.xsd) на схему
- Анализ всех XML-файлов в каталоге и всех подкаталогах
- Python: изменение файла XML
<tag1/> <tag2>some_data</tag2> <tag1>some_another_data</tag1>
tag1 иногда самозакрывается и иногда имеет данные внутри.
код:
from BeautifulSoup import BeautifulStoneSoup s = '<tag1/><tag2>some_data</tag2><tag1>some_another_data</tag1>' soup1 = BeautifulStoneSoup(s) soup2 = BeautifulStoneSoup(s, selfClosingTags=["tag1"]) print soup1.prettify() print print soup2.prettify()
вывод:
<tag1> <tag2> some_data </tag2> </tag1> <tag1> some_another_data </tag1> <tag1 /> <tag2> some_data </tag2> <tag1 /> some_another_data
В первом случае tag1 ест следующий тег (если он еще не тег1), потому что по умолчанию не поддерживается самозакрывающихся тегов. во втором случае самозакрывающийся тег не поддерживает дочерние теги.
Я просто хочу, чтобы структура была оригинальным XML-документом. Возможно ли это с помощью BeautifulSoup? И если это возможно, то как сделать все теги самозакрывающимися по умолчанию? Существует много xml-файлов, и я не хочу искать все такие ситуации вручную.
- Преобразование кортежа в словарь
- Действительно простой способ работы с XML в Python?
- Разбор XML для получения описания с использованием python с использованием minidom
- Дерево элементов xml
- Переместите весь элемент с помощью lxml.etree
2 Solutions collect form web for “Может ли BeautifulSoup анализировать xml, когда определенный тег является самозакрывающимся и не в то же время”
Я бы не рекомендовал BeautifulSoup (даже для разбора HTML). Используйте ElementTree из стандартной библиотеки или lxml , если вам нужна более мощная библиотека XML.
Вы можете сказать BeautifulSoup 4 («bs4») использовать другой парсер (например, lxml), указав его в конструкторе. Я бы полностью избегал более ранних версий и избегал использования парсера по умолчанию с помощью bs4 (например, он не справлялся с пропущенными конечными тегами правильно).
- Получение текстовых значений из XML в Python
- Получить xpath из результата поиска определенного шаблона регулярного выражения в кучке xml-файлов
- Измените пространства имен в заданном XML-документе с помощью lxml
- Python lxml (objectify): проблемы с Xpath
- Неблокирующий метод для разбора (потоковой передачи) XML в python
- JAXB эквивалент для генерации классов c ++ из xsd?
- BeautifulSoup возвращает , когда я запускаю его
- Разбор XML - ElementTree vs SAX и DOM
- Как я могу сказать, что файл SVG без использования магического номера?
- Рекурсивно искать родительские дочерние комбинации и строить дерево в python и XML
- Как преобразовать pandas / dataframe в XML?
- Следить за родительскими элементами с помощью ElementTree