Python lxml中测试元素是否为根的最佳方法
我不熟悉python和xml解析,所以这可能是一个非常愚蠢的问题。如果一个给定的元素是根,而根是未知的,那么测试它是否是根的最佳方法是什么?例如,给定一个通用的test.xml结构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
<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])