使用lxml ElementTree和没有根节点的sgml文件(路透社数据集)

时间:2013-09-05 07:58:38

标签: python xml-parsing lxml sgml

我正在开发一个解析路透社数据集的各种sgml文件的程序。但是我找到的文件中没有包含所有孩子的根节点。在DTD之后它只有一组<reuters>..</reuters>个标签。因此,解析树并使用getroot()仅提供第一个<reuters>标记,而不是整个列表。如何在不更改输入文件的情况下解决它?我的代码如下:

import os
from lxml import etree as ET

dirname = 'dataset'

for filename in os.listdir(dirname):
    filepath = os.path.join(dirname, filename)

    parser = ET.parser(encoding='utf-8', recover=True)

    tree = ET.parse(filepath, parser)

    root = tree.getroot()

此根元素只是第一个<reuters>标记,而sgml文件如下所示:

<!DOCTYPE lewis SYSTEM "lewis.dtd">
<reuters> .. </reuters>
<reuters> .. </reuters>
<reuters> .. </reuters>

我想要的是拥有所有<reuters>个标签,一次一个,并处理其内容。

0 个答案:

没有答案