使用XPATH检查HTML结构,任何节点计数

使用XPATH检查HTML结构,任何节点计数,xpath,Xpath,我想检查一些html标记的结构,只是检查结构。 例如,我需要检查标记中的某处是否为标记 我写道: //div[@class='list-item-canvas'][1]/*/img[@name='category-pic'] 如果是层次结构中任何('*')节点之后的第二个节点,但如果我在结构的深处有,并且我不想关心层次结构,那么我应该如何编写xpath查询?我想我可以写'**'而不是'**',但我不能 可能吗 这样做: //div[@class='list-item-canvas'][1]//

我想检查一些html标记的结构,只是检查结构。 例如,我需要检查
标记中的某处是否为
标记

我写道:

//div[@class='list-item-canvas'][1]/*/img[@name='category-pic']
如果
是层次结构中任何('*')节点之后的第二个节点,但如果我在结构的深处有
,并且我不想关心层次结构,那么我应该如何编写xpath查询?我想我可以写
'**'
而不是
'**'
,但我不能

可能吗

这样做:

//div[@class='list-item-canvas'][1]//img[@name='category-pic']
img
之前的
/
允许您查找
div
的任何后代,即
img
,而不仅仅是
div
的子女或孙子

另外,您确定要将
[1]
放在那里吗?它可能不是在做你想做的事。

使用

(//div[@class='list-item-canvas'])[1]//img[@name='category-pic']
(//div[@class='list-item-canvas'])[1]
这将选择任何
img
,其
name
属性的字符串值为
'category-pic'
,并且该字符串值为
'list-item-canvas'
属性的
第一个(按文档顺序)div的后代

注意子表达式周围的大括号

(//div[@class='list-item-canvas'])[1]//img[@name='category-pic']
(//div[@class='list-item-canvas'])[1]
这与:

 //div[@class='list-item-canvas'][1]
后者选择文档中的每个
div
元素,该元素是其父元素的第一个子元素,并且可能有多个这样的元素