XML ドキュメントを解析して特定のタグを取得しようとしています。名前タグ (アーティスト内にネストされた名前タグの場合のみ) とタイトル タグ (リリース内にネストされたタグの場合のみ) を取得したいと思います。
それはあまり重要ではありませんが、重要なことは、elif ステートメントが無効な構文であるというエラーが何らかの理由で発生していることです
。他の投稿を調べて、タブ移動が正しく、何もないことを確認しました。 if の後の余分な改行。
これはコード スニペットです。
from lxml import etree
import sys
#infile = raw_input("Please enter an XML file to parse: ")
outfile = open('results.txt', 'a')
path = []
for event, elem in etree.iterparse('releases7.xml', events=("start", "end")):
if event == 'start':
path.append(elem.tag)
elif event == 'end':
# process the tag
if elem.tag == 'name':
if 'artist' in path and not 'extraartists' in path and not 'track' in path:
outfile.write( 'artist = ' + elem.text.encode('utf-8') + '\n' )
elif elem.tag == 'title':
if 'release' in path and not 'track' in path:
outfile.write( 'release title = ' + elem.text.encode('utf-8') + '\n')
else:
print 'nonrelease'
path.pop()
これはエラーです:
File "DataDestroy_Fast.py", line 18
elif elem.tag == 'title':
^
SyntaxError: invalid syntax
(注: Mac OSX で Python2.7 を使用)