我在从以下节点选择产品时遇到问题。以下是html:
<div>
<p>Order ID 1</p>
<p style="display:none"></p>
<p>product 1</p>
<p>Order ID 2</p>
<p style="display:none"></p>
<p>product 1</p>
<p>product 2</p>
<p>Order ID 3</p>
<p style="display:none"></p>
<p>product 1</p>
<p>product 2</p>
<p>Order ID 4</p>
<p style="display:none"></p>
<p>product 1</p>
<p>product 2</p>
<p>product 3</p>
<p>Order ID 5</p>
<p style="display:none"></p>
<p>product 1</p>
</div>
我选择了具有以下代码的订单ID:
//div/p[@style="display:none"]/preceding-sibling::p[1]
有没有办法选择产品?代码我试过:
//div/p[@style="display:none"]/following::p[not(@style="display:none" )]
实验结果:
<p>product 1</p>
<p>Order ID 2</p>
<p>product 1</p>
<p>product 2</p>
<p>Order ID 3</p>
<p>product 1</p>
<p>product 2</p>
<p>Order ID 4</p>
<p>product 1</p>
<p>product 2</p>
<p>product 3</p>
<p>Order ID 5</p>
<p>product 1</p>
如何取消选择订单ID
3条答案
按热度按时间gpfsuwkq1#
您可以尝试使用
text()
内容,如下所示://div/p[contains(text(), 'product')]/text()
个或
//div/p[not(contains(text(), 'Order'))]/text()
在python中使用Scrapy,使用
extract()
函数的输出为:['product 1', 'product 1', 'product 2', 'product 1', 'product 2', 'product 1', 'product 2', 'product 3', 'product 1']
3phpmpom2#
I.使用:
二.说明
简单地说,此XPath表达式指示XPath引擎执行以下操作:
p
元素的以下所有同级元素,这些元素是顶级元素div
的子级,并且具有值为字符串"display:none"
的style
属性,使得(以下这些同级)本身没有style
属性,和不是p
元素的前一个同级元素,该元素具有值为字符串"display:none"
*的style
**属性III.基于XSLT的验证:
当此转换应用于提供的XML文档时:
计算XPath表达式,并将其(所需的、正确的)结果复制到输出中:
以下是使用XPath可视化工具计算此XPath表达式的屏幕截图:
nfg76nw03#
您可以检查
p
标签,其后续同级标签不具有该样式(这不适用于Order ID i
)。