【发布时间】:2015-07-29 07:59:14
【问题描述】:
我正在尝试在 Python 中解析一些 SGML,如下所示:
<!DOCTYPE lewis SYSTEM "lewis.dtd">
<TEXT>
<TITLE>One</TITLE>
<BODY>Sample One</BODY>
</TEXT>
<TEXT>
<TITLE>Two</TITLE>
<BODY>Sample Two</BODY>
</TEXT>
在这里,我只是在寻找<BODY> 标签(即["Sample One", "Sample Two"])内的所有内容。
我尝试过使用 BeautifulSoup,但它不喜欢第一行中的 <!DOCTYPE>,并且还希望将所有内容都包裹在像 <everything></everything> 这样的根标签上。虽然我可以在将这些更改传递给 BeautifulSoup 之前手动进行这些更改,但感觉有点太老套了。
我对 SGML 还很陌生,也没有和 BeautifulSoup 结婚,所以我愿意接受任何建议。
(对于那些好奇的人:我的具体用例是 reuters21578 数据集。)
【问题讨论】:
-
你用什么解析器来处理漂亮的汤?
-
我正在使用“lxml-xml”,正如其中一个文档中所推荐的那样。
-
您可以将您的 SGML 转换为 XML 并从中工作,如以下答案所述:stackoverflow.com/a/12534420/407651。
标签: python parsing xml-parsing beautifulsoup sgml