BeautifulSoup prettify меняет контент, а не только макет [закрыто]Python

Программы на Python
Ответить
Anonymous
 BeautifulSoup prettify меняет контент, а не только макет [закрыто]

Сообщение Anonymous »

BeautifulSoup prettify() изменяет значительные пробелы, даже если для атрибута xml:space установлено значение «сохранить».
Пример XML-файла со значительными пробелами:

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

    Default    spacing
    reserved    spacing

Код:

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

from bs4 import BeautifulSoup

xml_string_with_significant_whitespace ='''

    Default    spacing
    reserved    spacing

'''
soup = BeautifulSoup(xml_string_with_significant_whitespace, "xml")

# no modifications made

print(soup.prettify())  # modifies significant whitespace
# print(str(soup)) # doesn't modify significant whitespace
Выход:

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


Default    spacing



reserved    spacing



Текст будет перемещен из-за измененных пробелов.
Как предотвратить изменение prettify() значения XML-файла, а не только его макет?
Изменить:
Сделал вопрос более целенаправленным, чтобы предотвратить закрытие вопроса.
(Более ранняя версия этого сообщения также спросили о том, как предотвратить добавление пространств имен с помощью BeautifulSoup. Это было вызвано. атрибут xmlns:svg="http://www.w3.org/2000/svg. Некоторые другие библиотеки XML не добавляют пространство имен.)

Подробнее здесь: https://stackoverflow.com/questions/793 ... ust-layout
Ответить

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

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

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

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

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