我正在尝试解析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文档,但我不确定这是否提供了我要查找的功能。我将如何处理文本节点?
另外,有没有办法在文档中找到结束标记?
谢谢!
答案 0 :(得分: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
并编写处理程序来打开和关闭标记。它涉及的更多。