【发布时间】:2012-09-12 09:27:25
【问题描述】:
我正在尝试解析一个文件,例如: http://www.sec.gov/Archives/edgar/data/1409896/000118143112051484/0001181431-12-051484.hdr.sgml
我正在使用 Python 3,但无法找到使用现有库的解决方案来解析带有开放标签的 SGML 文件。 SGML 允许隐式封闭标签。当尝试使用 LXML、XML 或漂亮的汤来解析示例文件时,我最终会在文件末尾而不是在行尾关闭隐式关闭标签。
例如:
<COMPANY>Awesome Corp
<FORM> 24-7
<ADDRESS>
<STREET>101 PARSNIP LN
<ZIP>31337
</ADDRESS>
这最终被解释为:
<COMPANY>Awesome Corp
<FORM> 24-7
<ADDRESS>
<STREET>101 PARSNIP LN
<ZIP>31337
</ADDRESS>
</ZIP>
</STREET>
</FORM>
</COMPANY>
但是,我需要将其解释为:
<COMPANY>Awesome Corp</COMPANY>
<FORM> 24-7</FORM>
<ADDRESS>
<STREET>101 PARSNIP LN</STREET>
<ZIP>31337</ZIP>
</ADDRESS>
如果有一个非默认解析器可以传递给可以处理此问题的 LXML/BS4,我就错过了。
【问题讨论】:
-
@borncamp 你发现了吗?
-
我已将以上文本解析为 xml 和 json。让我知道您是否需要在这里或工作上的任何帮助
标签: python xml python-3.x lxml sgml