我是XPath的新手。
要求是创建一个XPath表达式,该表达式返回元素列表,而不是单个元素。之后,我们应用自定义逻辑来定位列表中的所需元素。
可以使用以下XPath访问单个元素:
.//*[@id='reportListItemID0']/td[12]/a
.//*[@id='reportListItemID1']/td[12]/a
.//*[@id='reportListItemID2']/td[12]/a
.
.
.
.//*[@id='reportListItemID20']/td[12]/a
.//*[@id='reportListItemID21']/td[12]/a
请告诉我,如何编写一个XPath表达式,它将返回所有上述元素。
我尝试了下面的内容并且它们无效:
.//*[@id='reportListItemID.']/td[12]/a
.//*[@id='reportListItemID..']/td[12]/a
.//*[@id='reportListItemID*']/td[12]/a
.//*[@id='reportListItemID**']/td[12]/a
请让我知道我错过了什么。
答案 0 :(得分:6)
您应该使用starts-with()
功能:
.//*[starts-with(@id,'reportListItemID')]/td[12]/a
答案 1 :(得分:2)
您还可以使用contains:
//*[contains(@id, 'reportListItemID')]/td[12]/a