[XPath/Python] XPath 与 lxml (四)XPath 运算符

XPath 中支持的运算符

# | 或: 返回所有 price 和 title 节点集合
>>> root.xpath(//price|//title)
[<Element title at 0x2d888c8>, <Element price at 0x2d88878>, <Element title at 0x2d88940>, <Element price at 0x2d88738>]

# + 加法:返回所有 price 子元素前两个之和
>>> root.xpath(//price[1]/text() + //price[2]/text())
69.94

# - 减法:返回所有 price 子元素前两个之差
>>> root.xpath(//price[1]/text() - //price[2]/text())
-9.960000000000004

# * 乘法:返回所有 price 子元素前两个之积
>>> root.xpath(//price[1]/text() * //price[2]/text())
1198.1005

# div 除法:返回所有 price 子元素前两个之商
>>> root.xpath(//price[1]/text() div //price[2]/text())
0.7506883604505631

# = 等于:返回 True 或  False
>>> root.xpath(//price[1]/text() = //price[2]/text())
False

# != 不等于:返回 True 或 False
>>> root.xpath(//price[1]/text() != //price[2]/text())
True

# < 小于:返回 True 或 False
>>> root.xpath(//price[1]/text() < //price[2]/text())
True

# <= 小于或等于:返回 True 或 False
>>> root.xpath(//price[1]/text() <= //price[2]/text())
True

# > 大于:返回 True 或 False
>>> root.xpath(//price[1]/text() > //price[2]/text())
False

# >= 大于或等于:返回 True 或 False
>>> root.xpath(//price[1]/text() >= //price[2]/text())
False

# or 或:返回 True 或 False
>>> root.xpath(//price[1]/text() > 29.9 or //price[2]/text() > 40)
True

# and 与:返回 True 或 False
>>> root.xpath(//price[1]/text() > 29.9 and //price[2]/text() > 40)
False

# mod 求余
>>> root.xpath(11 mod 2)
1.0

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。