2016-11-09 3 views
0

Python3でElementTree XML APIを使用していて、基本的なように思える質問があります。それ。出発点は、名前が文字列nameで与えられているxmlファイルを考えることです。私は、chldが存在するかどうかを調べる関数を探しています。その名前によって。現在、私がしていることは、私が探しているアイテムが2位(3番目のアイテム)であることを知っているからです。PythonでXML解析にElementTreeを使用するときの子の存在を確認する

 import xml.etree.ElementTree as ET 
    tree = ET.parse(name) 
    root = tree.getroot() 
    item = root.getchildren()[2] 

しかし、私はむしろ次のようなものを持っています:

 item = root.checkIfExists('itemName') 

誰かがこれについての機能を提案できますか?これにアプローチするより良い方法は?ありがとうございました。 the documentationを引用

答えて

2

Element.findall()は、現在の要素の直接の子であるタグを持つ要素だけを見つけ。

item = root.find('itemName') 

.find()リターンをNoneそのような要素が存在しない場合:Element.findは()してみてください、だから、特定のタグ

との最初の子を見つけました。 .findall()はその場合に空のリストを返します。

デモンストレーション:

import xml.etree.ElementTree as ET 
root = ET.XML('<root><item1/><item2/><itemName/></root>') 
assert root.getchildren()[2] is root.find('itemName') 
関連する問題