Seite 1 von 1

Linefeeds in XML mit BeautifulSoup

Verfasst: Dienstag 7. Juli 2020, 14:12
von GMAch
Hallo ich probier gerade XML Dateien mit Python mittels BeautifulSoup einzulesen.

Dabei ist mit Aufgefallen, das die Linefeeds aus dem eingelesenen Textfile dabei als eigene Elemente erkannt werden.

Hier mal mein XML Bespiel

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<a>
  <b>Hallo</b>
  <c>World</c>
</a>
Und mein Code:

Code: Alles auswählen

from bs4 import BeautifulSoup
input_file = 'Hello_World.dat'

f = open(input_file,'r') 

soup = BeautifulSoup(f, 'xml', from_encoding='utf-8')

f.close()

print(soup.a.contents)
Als Ausgabe krieg ich

Code: Alles auswählen

['\n', <b>Hallo</b>, '\n', <c>World</c>, '\n']
Sprich mit <a>-tag enthält auf einmal 5 Elemente anstelle von 2.

Mach ich irgendwas falsch oder ist das normal?
Muss ich da noch irgendeinen Parameter bei BeautifulSoup einstellen oder dem eingelesenen File noch irgendwas vor dem Umwandeln anstellen?

In der Dokumentation hab ich nichts dazu gefunden.

Re: Linefeeds in XML mit BeautifulSoup

Verfasst: Dienstag 7. Juli 2020, 14:35
von Sirius3
Und wo ist das Problem?

Re: Linefeeds in XML mit BeautifulSoup

Verfasst: Dienstag 7. Juli 2020, 14:50
von GMAch
Naja ich würde halt gerne wissen ob, dass mit den Linefeeds das normale Verhalten ist,.

Ich hab gerade erst angefangen mit XML zu beschäftigen und zusätzliche Elemente drin zu haben scheint bei der Navigation der Dateien (die etwas umfangreicher werden als das Beispiel oben) etwas unhandlich.

Re: Linefeeds in XML mit BeautifulSoup

Verfasst: Dienstag 7. Juli 2020, 15:03
von Sirius3
Man navigiert ja über die Tag-Namen, da stören zusätzliche Zeilenumbrüche nicht.