有效的XPath表达式

时间:2014-04-06 01:41:20

标签: python xml xpath lxml

只有两个问题:

  1. 如何检查分配给变量的字符串是否对应于有效的XPath表达式?
  2. 如果请求的资源不存在,如何返回自定义错误消息?

1 个答案:

答案 0 :(得分:5)

  1. 如果XPath无效,您将获得例外。
  2. 如果请求的节点不存在,您将获得一个空的结果 集。
  3. 例如:

    from lxml import etree
    from StringIO import StringIO
    tree = etree.parse(StringIO('<foo><bar></bar></foo>'))
    try:
      tree.xpath('\BAD XPATH')
      print '1. Valid XPath'
    except etree.XPathEvalError, e:
      print '1. Invalid XPath: ', e
    if not tree.xpath('/foo/xxx'):
      print '2. Requested node does not exist.'
    

    运行如下:

    1. Invalid XPath:  Invalid expression
    2. Requested node does not exist.