我正在寻找一种从提供的xml中解析这些翻译的方法。请注意,可能存在超过两个词作为同义词的情况。
<root>
<languageGrp>
<language type="Deutsch" lang="DE"/>
<termGrp>
<term>Apfel</term>
</termGrp>
<termGrp>
<term>Braeburn</term>
</termGrp>
</languageGrp>
<languageGrp>
<language type="English" lang="EN"/>
<termGrp>
<term>Apple <xref Tlink="Deutsch:Apfelbaum">Tree</xref></term>
</termGrp>
</languageGrp>
</root>
我当前的代码如下:
import xml.etree.ElementTree as ET
import pandas as pd
liste = []
zsmliste = []
sprachliste= []
for element in root.iter():
if element.get("type")== "Deutsch" or element.get("type")== "English":
sprache= element.get("type")
sprachliste.append(element.get("type"))
liste = []
besch = []
zsmliste.append(liste)
for term in element.findall("term"):
liste.append(term.text)
dic = pd.DataFrame(list(zip(sprachliste, zsmliste)))
问题在于elementtree一旦到达html外部参照就会停止解析,因此会忘记Tree导致输出不足。
我曾想过用正则表达式删除外部参照,但是所有人都对我大喊大叫,因为它是xml。有任何想法如何使用elementtree解决此问题吗?
答案 0 :(得分:1)
好的,
我所要做的就是使用
"".join(term.itertext())
在for循环中,因此如下所示:
for term in element.findall("term"):
liste.append("".join(term.itertext()))
很抱歉打扰大家。