lxmlを使用してXHTMLをレンダリングする場合、名前空間のプレフィックスが付いたXHTML要素とjavascriptを処理できないように見えるFirefoxを使用しない限り、すべて問題ありません。Operaはjavascript(これはjQueryとMathJaxの両方に適用されます)を正常に実行できますが、XHTML名前空間にプレフィックスがあるかどうかに関係なく(h:
私の場合)、Firefoxではスクリプトは奇妙なエラーで中止さthis.head
れます( MathJaxの場合)。
関数については知っていますが、名前空間プレフィックスとしてregister_namespace
も受け入れNone
ません。""
モジュールで聞いたこと_namespace_map
がありlxml.etree
ますが、Pythonがこの属性が存在しないと文句を言います(バージョンの問題?)
XHTML名前空間の名前空間プレフィックスを削除する他の方法はありますか?str.replace
別の関連する質問への回答で示唆されているように、XMLセマンティクスを認識しておらず、結果のドキュメントを簡単に台無しにする可能性があるため、私が受け入れることができる方法ではないことに注意してください。
リクエストに応じて、すぐに使用できる2つの例があります。1つは名前空間プレフィックスがあり、もう1つは。がありません。最初のものはFirefoxで0を表示し(間違っています)、2番目のものは1を表示します(正しい)。Operaは両方を正しくレンダリングします。これは明らかにFirefoxのバグですが、これはlxmlでプレフィックスなしのXHTMLが必要な理由としてのみ機能します。モバイルクライアントなどのトラフィックを減らす理由は他にもあります(h:
数十または数百のhtmlタグを考慮するとかなり多くなります) 。