0

XMLドキュメントを解析しようとしています。ドキュメントには、たとえば、書式設定のようなHTMLが埋め込まれています

<p>This is a paragraph
 <em>with some <b>extra</b> formatting</em>
 scattered throughout.
</p>

これまで使用してきました

import xml.etree.cElementTree as xmlTree

XMLドキュメントを処理しますが、これが私が探している機能を提供するかどうかはわかりません。ここでテキストノードを処理するにはどうすればよいですか?

また、ドキュメント内の終了タグを見つける方法はありますか?

ありがとう!

4

1 に答える 1

0

XMLドキュメントがメモリに収まる場合は、Beautiful Soupを使用する必要があります。これにより、ドキュメントへのアクセスが大幅に向上します。ノードを選択して、その子と自動的に対話することができます。すべてのノードには.nextコマンドがあり、次のタグまでテキストを繰り返し処理します。

それで:

>>> b = BeautifulSoup.BeautifulStoneSoup("<p>This is a paragraph <em>with some <b>extra</b> formatting</em> scattered throughout.</p>")

>>> b.find('p')
<p>This is a paragraph <em>with some <b>extra</b> formatting</em> scattered throughout.</p>

>>> b.find('p').next
u'This is a paragraph '

>>> b.find('p').next.next
<em>with some <b>extra</b> formatting</em>

それ、またはそのようなものは、あなたの問題を解決するはずです。

メモリに収まらない場合は、SAXパーサーをサブクラス化する必要があります。これはもう少し手間がかかります。from xml.parsers import expatこれを行うには、タグを開いたり閉じたりするためのハンドラーを使用および記述します。もう少し複雑です。

于 2013-01-27T21:13:02.973 に答える