如何将新的xml属性添加到一组xml文档?

时间:2018-08-22 19:36:54

标签: python python-3.x beautifulsoup lxml

我正在将目录中的一堆xml文档标准化为pandas数据框。但是,为了正确执行此操作,我认为为每个xml文档分配一个ID会更容易,以便以后将所有文档合并到一个数据框中。因此,我尝试添加如下数字ID:

for filepath in glob(os.path.join('../data/trainingFiles/', '*.xml')):
    with open(filepath) as f:
        xml_doc = BeautifulSoup(f.read(), 'lxml')
        for i, sentences in enumerate(xml_doc.find_all("sentence")):
            sentences['pandas_id'] = str(i)
            print(sentences)

但是,以上代码将同一文档内的所有句子属性添加了不同的数字ID。如何为每个文档分配不同的ID(即,我想向文档中的所有元素添加相同的ID)?.是否有任何方式可以携带对我要添加的熊猫ID属性的文档的引用?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用此代码,document_id只会随每个文件而更改:

for document_id, filepath in enumerate(glob(os.path.join('../data/trainingFiles/', '*.xml'))):
    with open(filepath) as f:
        xml_doc = BeautifulSoup(f.read(), 'lxml')
        for sentences in xml_doc.find_all("sentence"):
            sentences['pandas_id'] = str(document_id)
            print(sentences)