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

How to add new xml attributes to a set of xml documents?

我正在将目录中的一堆 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)?.. 有什么方法可以引用我正在添加的文档 pandas id属性?

您可以试试这个代码,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)