特定のタグが xml ファイルに存在するかどうかを確認する必要があります。
たとえば、このスニペットにタグが存在するかどうかを確認したい:
<main>
<elem1/>
<elem2>Hi</elem2>
<elem3/>
...
</main>
現在、私は次のようなエラーチェック付きの醜いハックを使用しています:
try:
if root.elem1.tag:
foo = elem1
except AttributeError:
foo = "error finding elem1"
また、ノードが見つからない場合 (つまり、「-tagname- が見つかりません」) の文字列をカスタマイズしたいと考えています。
変数の長いリストをチェックする必要があり、コードを 100 回繰り返したくありません。
助言がありますか?
編集:
実際の xml ファイルの一部を次に示します。
<main>
<asset name="Virtual Dvaered Unpresence">
<virtual/>
<presence>
<faction>Dvaered</faction>
<value>-1000.000000</value>
<range>0</range>
</presence>
</asset>
<asset name="Virtual Empire Small">
<virtual/>
<presence>
<faction>Empire</faction>
<value>100.000000</value>
<range>2</range>
</presence>
</asset>
</main>
タグが存在するかどうかを確認し、存在する場合はコンテンツを取得したい。
編集編集:わかりました、2つの回答を組み合わせますが、投票できるのは1つだけです. ごめん。
編集 3: ここでの XPath に関する関連する質問: Python lxml (objectify): Xpath のトラブル