これは、Python と XML ファイルからの情報取得の両方に対する私の最初の試みであるため、初心者向けの質問であることをお詫びします。
情報が次のように構成されている XML ファイルから著者名を抽出しようとしています。
<Author ValidYN="Y">
<LastName>Duck</LastName>
<ForeName>Donald</ForeName>
<Initials>D</Initials>
</Author>
時々、次のようなエントリがあります。
<Author ValidYN="Y">
<CollectiveName>Some Corp</CollectiveName>
</Author>
私が持っているコードは最初の例では問題なく動作しますが、2 番目の例では失敗し、AttributeError: 'NoneType' object has no attribute 'text'メッセージが表示されます。何が起こっているのかについての私の非常に基本的な理解では、何も見つからないという理由だけでエラーが発生していると思います。私が解決できないのは、2 番目の例を無視して次の作成者を探し続ける方法です。
コードは次のとおりです。
import xml.etree.ElementTree as etree
infile = r'C:\temp\test.xml'
authors = []
tree = etree.parse(infile)
root = tree.getroot()
for elem in tree.iter(tag='Author'):
sn = elem.find('LastName').text
fn = elem.find('Initials').text
authors.append(fn + ' ' + sn)
for x in authors:
print (x)
どんな助けもありがたく受け取った!