我正在尝试在一堆xml专利文件中捕获所有索赔文本税,但在<claim-test>
中遇到标记问题。有时会有另一个<claim-text>
,有时也会<claim-ref>
中断文本。在我的输出中,代码被截断。通常有超过10个索赔。我试图只获取索赔文本中的文本。
我已经看过并试过以下但这些不起作用: xml elementree missing elements python和 How to get all sub-elements of an element tree with Python ElementTree? 我已经在这里添加了一个片段,因为它确实需要很长时间来捕捉所有内容。
我的代码如下(其中fullname是文件名和目录)。
for _,elem in iterparse(fullname):
description = '' # reset to empty string at beginning of each loop
abtext = '' # reset to empty string at beginning of each loop
claimtext= '' # reset to empty string
if elem.tag == 'claims':
for node4 in tree.findall('.//claims/claim/claim-text'):
claimtext = claimtext + node4.text
f.write('\n\nCLAIMTEXT\n\n\n')
f.write(smart_str(claimtext) + '\n\n')
#put row in df
row = dict(zip(['PATENT_ID', 'CLASS', 'ABSTRACT', 'DESCRIPTION','CLAIMS'], [data,cat,abtext,description,claimtext]))
row_s = pd.Series(row)
row_s.name = i
df = df.append(row_s)
因此产生的问题是双重的a)我只得到一个打印到fil的文本和b)根本没有任何内容进入数据框。我不确定这是同一问题的一部分还是两个不同的问题。我可以将声明打印到文件中并且工作正常但跳过一些文本。