8

XML で記述された構成ファイルを解析するコードに取り組んでいます。ここで、XML タグは大文字と小文字が混在し、大文字と小文字が区別されます。Beautiful Soup はデフォルトで XML タグを小文字に変換するようですが、この動作を変更したいと思います。

この件について質問したのは私が初めてではありません [こちらを参照]。しかし、私はその質問に対する答えを理解できず、BeautifulSoup-3.1.0.1 では BeautifulSoup.py に " encodedName" または " Tag.__str__"のインスタンスが含まれていないようです。

4

5 に答える 5

6
import html5lib
from html5lib import treebuilders

f = open("mydocument.html")
parser = html5lib.XMLParser(tree=treebuilders.getTreeBuilder("beautifulsoup"))
document = parser.parse(f)

'document' は BeautifulSoup のようなツリーになりましたが、タグのケースは保持されます。ドキュメントとインストールについては、 html5libを参照してください。

于 2009-05-22T05:09:46.813 に答える
1

lxmlを使用する方がはるかに優れています。BeautifulSoup よりもはるかに高速です。lxml API を学習したくない場合は、BeautifulSoup 用の互換 API もあります。

Ian Blicking も同意見です。

Google App Engine を使用している場合や、純粋な Python 以外が許可されていない場合を除き、BeautifulSoup を使用する理由はもうありません。

XML にも適しています。

于 2009-08-03T15:35:17.803 に答える
0

壊れたファイルを処理するために作成されたライブラリの代わりに、propper xml パーサーを使用するだけです

xml.etree または lxml を確認することをお勧めします

于 2009-05-21T23:08:10.823 に答える