技术源于生活,服务生活 Terry 随笔

爱阅书香之xPathEx解析教程


简介

这是简化的xPath语法,提供更简单,但功能同样强大的解析规则。不同需要懂太多东西,只要会懂一点点的HTML知识,就可以写出强大的书源了。此解析方式,需要安装6.2.1版本(此版本正内测中)的爱阅书香才可以。

简单例子说明

例子1

a[@class=xyz][0].@href

说明:

获取HTML中class属性的值包含xyz的所有a标签, 取第一个结果,获取其href属性的值

例子2

div.li.a

说明:

先获取所有的div,得到结果1. 再获取结果1下面所有的li, 得到结果2,最后获取结果2下的所有a标签

规则说明

基本规则

标签名1[@条件1]...[@条件N][集合条件].标签名2[].@属性名#正则表达式

复杂规则

基本规则1 || 基本规则2 && 基本规则3 

以下为规则说明:

  1. 标签名表示 html 中的所有有效的标签,如 a, div, dl。。。等等
  2. . 为分隔符,第一段的结果为下一段要分析的内容。
  3. @为开头的标签表示属性。如 @href, @id, @src 等等.下面为特殊规则
    • @html 表示将结果格式化为包含 html 的字符串。
    • @text 表示将结果格式化为文本,相当于:./text() 不包含HTML字符信息。
    • @allText 表示指定节点下的所有元素的文本,相当于:.//text()
  4. []表示条件,分为前置条件与后置条件
    • 前置条件,以[@开头,表示指定标签的某个属性值要包含或等于指定值。
    • 以key=value的方式(只有一个=号),表示包含:属性值要包含value
    • 以key==value的方式(有两个=号),表示相同:属性值要与value一致
    • 支持以 and 或者是 or 的方式来生成多个条件。
    • 后置条件,[]中的第一个字符不是@的。从0开始,-1表示最后一个,-2表示最后第二位,!表示排除指定位置的值,-表示对集合进行反转。
  5. #表示使用正则表达式对结果进行处理。
  6. || 作为“或”的方式分隔规则, 只要前面有规则能取到数据,则停止。
  7. && 作为”并”的方式分隔规则,合并所有规则的数据。

实战

使用xpathEx的方式写一个搜索书籍的配置。


相关内容

Content