Python lxml etree检查节点是否存在

时间:2014-02-16 22:09:57

标签: python python-2.7 lxml

我有这个XML:

<MasterPage>
    <NextPage>
        <prefix>

我想检查prefix节点是否存在;我试过这个,但它不起作用:

self.doc=etree.parse(xmlFile)
if hasattr(self.doc, 'MasterPage/NextPage/prefix'):

2 个答案:

答案 0 :(得分:1)

>>> from lxml.html import fromstring
>>> import lxml.html as PARSER
>>> data = """<MasterPage>
...              <NextPage>
...                  <prefix>"""
>>> root = PARSER.fromstring(data) 
>>> node_list = []
>>> for ele in root.getiterator():
...     node_list.append(ele.tag)
... 
>>> if "prefix" in node_list:
...     print "True"
... 
True
>>> node_list
['masterpage', 'nextpage', 'prefix']

答案 1 :(得分:0)

您可以使用etree库中的find()或findall()函数。