2

cElementTree を使用して xml ファイルを解析しています。.getroot() 関数を使用すると、結果として要素タイプが得られます。この型をif文で使いたい

if type(elementVariable) == 'Element':
     do stuff

ただし、次の操作を行うと、型が認識されません。

import xml.etree.cElementTree as xml
file = 'test.xml'
# parse the xml file into a tree
tree = xml.parse(file)
# Get the root node of the xml file
rootElement = tree.getroot()
return rootElement
print type(rootElement)
print type(rootElement) == 'Element'
print type(rootElement) == Element

出力:

<type 'Element'>
False
Traceback (most recent call last):
  File "/homes/ndeklein/workspace/MS/src/main.py", line 39, in <module>
    print type(rootElement) == Element
NameError: name 'Element' is not defined

そう

print type(rootElement) 

タイプとして「Element」を指定しますが、

print type(rootElement) == 'Element' 

偽を与える

そのような型を if ステートメントで使用するにはどうすればよいですか?

4

1 に答える 1

6

Elementクラスが C 実装によって直接公開されていないようです。ただし、次のトリックを使用できます。

>>> Element = type(xml.etree.cElementTree.Element(None))
>>> root = xml.etree.cElementTree.fromstring('<xml></xml>')
>>> isinstance(root, Element)
True
于 2012-02-10T10:13:51.733 に答える