0

特定のタグを抽出するためにいくつかの XML ファイルを解析しています。ここで多くの助けを借りて、テストファイルで動作しています。私は今、新しい問題を抱えています。同僚が私にテストを求めている次のファイルは、いくつかのタグが欠落しているようです。

これは私が現在持っているコードです:

with open('output.log', 'w') as f:
   for info in root.xpath('//xmlns:ProgramInformation', namespaces=nsmap):
      crid = (info.get('programId')) # retrieve crid
      title = (info.find('.//xmlns:Title', namespaces=nsmap).text) # retrieve title
      genre = (info.find('.//xmlns:Genre/xmlns:Name', namespaces=nsmap).text) # retrieve genre
      f.write('{}|{}|{}\n'.format(crid, title, genre))

「crid」は常に存在しますが、タイトルやジャンルが生成されない問題があるようです。これにより、すべてが停止します。

コードが欠落しているタグをスキップして (ただし、crid を書き込んで) 次のセットに移動する方法、または出力ファイルにエラーを書き込む方法 (欠落しているタイトルまたはジャンルの代わりに) はありますか? )。

4

1 に答える 1

0

残念ながらコンパクトではありませんが、分割する必要があります。

  titlex = info.find('.//xmlns:Title', namespaces=nsmap)
  title = titlex.text if titlex != None else ''
于 2013-10-03T13:30:19.137 に答える