将XML解析为python中的字符串列表

时间:2017-10-18 18:00:57

标签: python xml

编辑:XML文件

-<corpus lang="en" id="subtask2-heterographic">


-<text id="het_1">

  <word id="het_1_1">'</word>

  <word id="het_1_2">'</word>

  <word id="het_1_3">I</word>

  <word id="het_1_4">'</word>

  <word id="het_1_5">m</word>

  <word id="het_1_6">halfway</word>

  <word id="het_1_7">up</word>

  <word id="het_1_8">a</word>

  <word id="het_1_9">mountain</word>

  <word id="het_1_10">,</word>

  <word id="het_1_11">'</word>

  <word id="het_1_12">'</word>

  <word id="het_1_13">Tom</word>

  <word id="het_1_14">alleged</word>

  <word id="het_1_15">.</word>

</text>


-<text id="het_2">

  <word id="het_2_1">I</word>

  <word id="het_2_2">'</word>

  <word id="het_2_3">d</word>

  <word id="het_2_4">like</word>

  <word id="het_2_5">to</word>

  <word id="het_2_6">be</word>

  <word id="het_2_7">a</word>

  <word id="het_2_8">Chinese</word>

  <word id="het_2_9">laborer</word>

  <word id="het_2_10">,</word>

  <word id="het_2_11">said</word>

  <word id="het_2_12">Tom</word>

  <word id="het_2_13">coolly</word>

  <word id="het_2_14">.</word>

 </text>
</corpus>

我在python上解析XML文件并获取我想要的文本。每个文本标记代表XML文件中的一个句子,我想将每个句子作为单独的列表元素放在列表中。

tree = ET.ElementTree(file='subtask2-heterographic-test.xml')
root = tree.getroot()

lst = []

for elem in root:
    for w in elem:
        lst.append(w.text)

>> ["'", "'", 'I', "'", 'm', 'halfway', 'up', 'a', 'mountain', ',', "'", "'", 'Tom', 'alleged', '.', 'I', "'", 'd', 'like', 'to', 'be', 'a', 'Chinese', 'laborer', ',', 'said', 'Tom', 'coolly', '.', 'Dentists', ...]

这只是在不分离句子的情况下给出XML文件中的所有单词。 如何修复它以将每个句子作为字符串列表放入列表中?

最终预期产出:

>> [["'", "'", 'I', "'", 'm', 'halfway', 'up', 'a', 'mountain', ',', "'", "'", 'Tom', 'alleged', '.'] , ['I', "'", 'd', 'like', 'to', 'be', 'a', 'Chinese', 'laborer', ',', 'said', 'Tom', 'coolly', '.'], ['Dentists', ...] ]

1 个答案:

答案 0 :(得分:1)

您必须为每个句子创建一个新列表:

HashMap