Python中的XML解析问题

问题描述 投票:0回答:2

我正在尝试解析XML文件(字幕)的以下内容(这里只是一个块)

  <?xml version="1.0" encoding="utf-8"?>
    <document id="6736625">
      <s id="1">
        <time id="T1S" value="00:02:54,941" />
        - Le requin t'a eue.
      </s>
      <s id="2">
        - Tu es sérieuse ?
      </s>
      <s id="3">
        Regarde ce que tu as fait.
        <time id="T1E" value="00:02:58.251" />
      </s>
      <s id="4">
        <time id="T2S" value="00:02:58,351" />
        Je vais t'en chercher un autre.
      </s>
      <s id="5">
        On peut faire quelque chose, je m'ennuie....
        <time id="T2E" value="00:03:01,249" />
      </s>
      ...

带有以下Python代码

tree = ET.parse('data/6736625.xml')
root = tree.getroot()
myPhrasesArray = [""]

for q in root:
    try:
        a = q.text
        b = a
        myPhrasesArray.append(b)
    except :
        print(" arh ")

print(myPhrasesArray)

但它返回:

['', '', '- Tu es sérieuse ?', 'Regarde ce que tu as fait.', 
 '', "On peut faire quelque chose, je m'ennuie....", '', '', 
 "J'ai promis à Stuart de l'appeler.", '', '- A tes ordres.', 
 .....

如果在实际文本之前有ID时间/值行,我似乎无法找到一种获取“ / s”文本值的方法。

任何帮助???

python-3.x xml xml-parsing
2个回答
0
投票
输出:

["- Le requin t'a eue.", '- Tu es sérieuse ?', 'Regarde ce que tu as fait.', "Je vais t'en chercher un autre.", "On peut faire quelque chose, je m'ennuie...."]


0
投票
myPhrasesArray = [] # just start with it empty for s in root.findall('s'): myPhrasesArray.append(s.text)

鉴于此非常简单,您甚至可以在一行中完成:


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.