gpt4 book ai didi

Python:解析 SGML

转载 作者:行者123 更新时间:2023-11-28 22:42:28 24 4
gpt4 key购买 nike

我正在尝试在 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 数据集。)

最佳答案

您可以尝试使用 'html.parser' 作为解析器而不是 lxml-xmllxml-xml 期望文本是正确的 xml,但事实并非如此。

示例/演示 -

>>> from bs4 import BeautifulSoup
>>> s = """<!DOCTYPE lewis SYSTEM "lewis.dtd">
... <TEXT>
... <TITLE>One</TITLE>
... <BODY>Sample One</BODY>
... </TEXT>
... <TEXT>
... <TITLE>Two</TITLE>
... <BODY>Sample Two</BODY>
... </TEXT>"""
>>> soup = BeautifulSoup(s,'html.parser')
>>> soup.find_all('body')
[<body>Sample One</body>, <body>Sample Two</body>]

关于Python:解析 SGML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31694553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com