Elementtree XML解析在括号处停止

时间:2019-01-29 08:25:03

标签: python xml elementtree

我正在寻找一种从提供的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解决此问题吗?

1 个答案:

答案 0 :(得分:1)

好的,

我所要做的就是使用

"".join(term.itertext())

在for循环中,因此如下所示:

for term in element.findall("term"):
    liste.append("".join(term.itertext()))

很抱歉打扰大家。