使用lxml xpath获取正好一个元素或引发异常

时间:2012-09-27 06:28:11

标签: python xpath lxml

lxml中的xpath()函数通常返回元素列表。

如果我有一个XPath,我希望它只返回一个元素,那么最好的方法是什么:

  • 检查是否返回了一个元素,否则引发异常,并且:
  • 获取该元素(与单元素列表相对)?

我真的在寻找SQLAlchemy的one()函数的模拟。

1 个答案:

答案 0 :(得分:18)

try:
    (element,) = tree.xpath('//xpath/selector')
except ValueError:
    raise InvalidSelector()
    # happened because the list was either empty or contained multiple elements