python - 有效的 XPath 表达式

标签 python xml xpath lxml

只有两个问题:

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

最佳答案

  1. 如果 XPath 无效,您将得到一个异常。
  2. 如果请求的节点不存在,你会得到一个空的结果 设置。

例如:

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.

关于python - 有效的 XPath 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22889021/

相关文章:

python - 比较更多嵌套字典(节省时间)

python - 对包含 3 个模型对象的列表进行排序

java - 确定后续同级的正确 xpath

python - 从 anchor 标记的 xpath 节点获取 2 属性的值

javascript - 支持命名空间 xml 的 AJAX 库

asp.net - 请检查我的 XPath 查询

Python 通过 JSON 迭代数据

Python Psycopg 错误和连接处理 (v MySQLdb)

c# - 如何删除 <a :To s:mustUnderstand ="1"> from SOAP Request

android - 布局中的布局 <layout> 在基本布局文件夹中没有声明 [错误]