采用lxml进行xml的解析操作,在使用find()和findall()方式进行操作的时候,如果match按照XPath标准写的复杂点儿,某些情况下会碰到invalid predicate错误。
从lxml的官方文档上来看,lxml是支持XPath1.0标准的,可为何还报出invalid predicate错误呢?
仔细查阅lxml文档才发现:
原来,lxml为了和python标准库中的xml.etree.ElementTree兼容,采用了和xml.etree.ElementTree同样的策略。xml.etree.ElementTree中的find和findall对XPath的支持本身就是有限的,只能算是支持了XPath的一个子集。lxml对XPath的支持体现在xpath()方法中,如果不考虑兼容性的问题,全部采用xpath()来操作即可

参阅:
http://lxml.de/FAQ.html#what-are-the-findall-and-xpath-methods-on-element-tree

http://stackoverflow.com/questions/6218126/xpath-predicate-with-sub-paths-with-lxml

转载于:https://www.cnblogs.com/Jerryshome/archive/2012/06/02/2531995.html

lxml invalid predicate错误相关推荐

  1. [Issue Fixed]-执行脚本时出现invalid option错误

    在执行脚本时,出现了: invalid option 错误 最后在stackoveflow上找到了答案 You script probably has characters in it that yo ...

  2. realloc invalid pointer错误解析

    realloc invalid pointer错误 char* temp=(char*) realloc(src,sizeof(char)*100); 如上面这行代码,可能会出现标题中的错误.错误原因 ...

  3. 微信分享踩坑:config:invalid signature错误的解决方法

    微信分享踩坑:config:invalid signature错误的解决方法 一般出现这个错误多半是签名获取失败,而我根据我获取到的签名跟签名算法校验里面得到的签名是一样的,于是查找大量文档,核实可能 ...

  4. shmget出现Invalid argument错误

    1.shmget函数简介 shmget简介 头文件 #include < sys/ipc.h > #include <sys/shm.h> 函数功能 得到一个现有的共享内存标识 ...

  5. vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 “invalid signature“错误解决方案

    vue 单页面(SPA) history模式调用微信jssdk 跳转后偶尔 "invalid signature"错误解决方案 参考文章: (1)vue 单页面(SPA) hist ...

  6. Jquery.ajax报parseerror Invalid JSON错误的原因和解决方法:不能解析

    默认: 自动判断 (xml 或 html)) 请求失败时调用时间.参数有以下三个:XMLHttpRequest 对象.错误信息.(可选)捕获的错误对象.如果发生了错误,错误信息(第二个参数)除了得到 ...

  7. ORA-00911: invalid character 错误解决

    同事遇到了一个奇怪的问题:同样的SQL语句,写在C#里,访问oracle数据库,在他机器执行会报错,而其他机器则不会. 这条语句拿到他本机的PL/SQL developer执行,又没有问题. [外链图 ...

  8. SyntaxError :invalid syntax错误解决办法

    今天学习了python,然而刚开始就出了一个SyntaxError :invalid syntax错误,明明代码没有一点问题,可是每次运行都会显示 "SyntaxError: invalid ...

  9. 微信 开发诡异的40029错误invalid code错误 443 failed to respond错误的解决办法

    情景:使用静默授权或感知授权的方式将请求绑定到微信公众号的菜单栏上.链接如下: https://open.weixin.qq.com/connect/oauth2/authorize?appid=AP ...

最新文章

  1. oracle decode一个值对应多个值,如何使用Oracle的Decode函数进行多值判断
  2. C++__conversion function,Non-explicit one argument constructor
  3. MONGODB 集群架构 调整,增加延迟备份节点服务器,删除仲裁节点
  4. oracle10g rac启动,ORACLE 10G RAC启动与关闭
  5. 计算机中央处理器cpu_中央处理器(CPU)| 计算机科学组织
  6. Greenplum 类型一致性使用规范 - 索引条件、JOIN的类型一致性限制
  7. XenApp/XenDesktop 7.11 对于HDX 3D pro的2点增强
  8. android job service,服务保活那些事(Job Service ,JobScheduler)
  9. 渣男论(跟技术无关,随笔而已)——一蓑烟雨任平生
  10. Postman下载及安装详细教程
  11. 圆锥曲线中的范围最值问题
  12. ZigBee模块——从新冠、癌症防治看物联网智慧医疗的应用
  13. MacBook Pro 开机密码忘记的解决办法
  14. 精度、小数位数和长度
  15. 单出口双防火墙双核心冗余_王术芳/海关缴款书抵扣和出口退税操作变化要点解析...
  16. 类和对象7:构造和析构方法
  17. Margin对span无效
  18. python flask上传文件_Python之利用Flask上传文件、Flask_RESTful
  19. Linux中断子系统(二)中断控制器GIC驱动分析
  20. [C++]auto类型说明符

热门文章

  1. android studio第三方调试,Android Studio直接运行调试签名包
  2. 使用CNN实现图像分类——理解卷积神经网络(卷积、池化、全连接)
  3. (76)FPGA随机函数($dist_uniform)
  4. (62)FPGA一维数组(reg)
  5. VHDL常用操作符介绍
  6. ADS1675调试无时钟输出
  7. Vivado 2019.1 生成bit文件报错解决
  8. 开两个服务内存溢出_应用服务OkHttpClient创建大量对外连接时内存溢出
  9. Labview-隧道 移位寄存器
  10. 1013.clion配置快捷提示模板