Pythonで文字列内のすべてのHTMLタグと属性を小文字に変換するにはどうすればよいですか? 属性値の変更、インデントの禁止、行の折り返しなど、他には何も変更しないでください。
あまりにも明白である場合は申し訳ありません:)
不可能とまでは言いませんが、これは非常に難しい注文です。その理由は、HTML パーサーは通常、行末などの HTML に関係のない文字を保持しようとしないためですが、HTML パーサー以外のものは、フォーマット。
本当にこれを行う必要があり、これをうまく行う必要がある場合は、既存の python HTML パーサーを分析し、ニーズに合わせて変更することを検討します。これはかなり高度なプログラミング プロジェクトです。なぜこれを行う必要があるのか、これが厳密に正しいことなのかを真剣に検討することをお勧めします。
編集: 追加の問題は、HTML の有効性をチェックし、有効になるように再構成するか、無効な HTML を窒息させることなく、HTML を解析することは実際には不可能であることです。したがって、HTML に有効性の問題がある可能性がある場合、結果は未定義です。たとえば、入力に のような非常に無効なタグが含まれている場合、それ<font="courier">
はこの演習では HTML タグと見なされるのでしょうか、それとも単にパーサーを殺す文字列と見なされるのでしょうか? 同様に、ドキュメント内の間違った場所に有効なタグがあります。
私の知る限り、これは達成するのが非常に難しい結果になる可能性はありません(少なくとも信頼できる方法では)。
HTML を解析してツリーに変換し、それを文字列に戻すという性質上、HTML マークアップに加えられた変更が表示されます。
PS。正規表現を使用して HTML 解析の問題にアプローチすることはお勧めしません: https://stackoverflow.com/a/1732454/311220