Python lxml中测试元素是否为根的最佳方法

Python lxml中测试元素是否为根的最佳方法,python,xml,lxml,Python,Xml,Lxml,我不熟悉python和xml解析,所以这可能是一个非常愚蠢的问题。如果一个给定的元素是根,而根是未知的,那么测试它是否是根的最佳方法是什么?例如,给定一个通用的test.xml结构 <root> <child1> <child2> <child3>Some Text</child3> 最初我试过了 if (len(element.getparent()): #return None if the parent 因为lx

我不熟悉python和xml解析,所以这可能是一个非常愚蠢的问题。如果一个给定的元素是根,而根是未知的,那么测试它是否是根的最佳方法是什么?例如,给定一个通用的test.xml结构

<root>
<child1>
<child2>
<child3>Some Text</child3>
最初我试过了

      if (len(element.getparent()):  #return None if the parent

因为lxml处理的元素类似于列表,所以我希望它为所有子元素返回值,而为没有父元素的根元素返回值。相反,对于root,它返回一个错误。

我以前从未使用过lxml,但是通过查找文档并仔细考虑一下:root将是唯一没有父元素的元素,对吗

from lxml import etree as ET
fulltree = ET.parse('test.xml')


def do_stuff_with_element(element):
    if element.getparent() is None:
        print("Element is root")
    else:
        print("Element is not root")


root = fulltree.getroot()
do_stuff_with_element(root)
do_stuff_with_element(root.getchildren()[0])

该死,这是个愚蠢的问题。是的,这很有效。我可以发誓我试过这种变体。无论如何。谢谢。我在上面的问题中添加了我最初的尝试,仅供将来参考。
from lxml import etree as ET
fulltree = ET.parse('test.xml')


def do_stuff_with_element(element):
    if element.getparent() is None:
        print("Element is root")
    else:
        print("Element is not root")


root = fulltree.getroot()
do_stuff_with_element(root)
do_stuff_with_element(root.getchildren()[0])