Gibt es eine Möglichkeit, benutzerdefinierte Einzug Breite für .prettify()
Funktion zu definieren? Von dem, was ich von der Quelle bekommen kann -Benutzerdefinierte Einzug Breite für BeautifulSoup .prettify()
def prettify(self, encoding=None, formatter="minimal"):
if encoding is None:
return self.decode(True, formatter=formatter)
else:
return self.encode(encoding, True, formatter=formatter)
Es gibt keine Möglichkeit, die Breite der Einrückung anzugeben. Ich denke, es ist wegen dieser Zeile in der decode_contents()
Funktion -
s.append(" " * (indent_level - 1))
, die eine feste Länge von 1 Platz hat! (WARUM !!) Ich habe versucht, indent_level=4
Angabe, dass nur Ergebnisse in diesem -
<section>
<article>
<h1>
</h1>
<p>
</p>
</article>
</section>
Welche einfach nur dumm aussieht. : |
Jetzt kann ich das weghacken, aber ich will nur sicher sein, wenn es etwas gibt, das ich vermisse. Weil dies ein grundlegendes Merkmal sein sollte. : -/
Wenn Sie eine bessere Möglichkeit haben, HTML-Codes zu verschönern, lassen Sie es mich wissen.
Als Antwort auf Ihre Frage ("Warum?"): HTML und XML sind sehr, sehr tief verschachtelt, und ich denke die Crummy Typen wie 80-Spalten-Fenster. Aber vielleicht möchtest du einen Beitrag in der Mailing-Liste/Gruppe posten und/oder einen Fehler bei dieser Funktion einreichen (und da der Patch ziemlich einfach ist - und Ramabodhi hat es schon ziemlich für dich geschrieben - solltest du ihn mit deinem E-Mail/Bug einbinden) Bericht). – abarnert
Es sieht so aus, als hätte jemand vor ein paar Jahren einen ähnlichen Patch gegen 3.2 an die Mailingliste geschickt. Siehe [hier] (https://groups.google.com/forum/?fromgroups=#!topic/beautifulsoup/B4qryJpJqpY). – abarnert
"1 Leerzeichen Eindruck sieht einfach dumm.: |" - Vielen Dank. Dies ist genau das, was ich dachte, als ich nach diesem Problem suchte. – Brandin