XPath基于以某些东西开头的id属性值?

时间:2018-03-29 11:55:21

标签: html xml xpath

例如,如果我在网站上有多个锚元素,并且获取它们的最简单方法是通过他们的ID,但ID看起来像这样:

lots of html...
    <a href="google.com" id="foo_1">hop1</a>
...lots of html...
    <a href="yahoo.com" id="foo_2">hop2</a>
...lots of html...
    <a href="stackoverflow.com" id="foo_1003">hop3</a>
...lots of html

是否可以选择href具有id "foo_"部分的所有锚元素的id属性?换句话说,我可以在XPath中的属性值中添加通配符吗?

2 个答案:

答案 0 :(得分:1)

是的,您可以根据XSL使用匹配功能:

  1. 从foo_ //a/@id[matches(.,'^foo_\d+')]
  2. 开始
  3. 包含foo_ //a/@id[matches(.,'foo_\d+')]
  4. 请说明您要求的语言

答案 1 :(得分:1)

此XPath表达式,适用于所有版本的XPath,

//a[starts-with(@id,"foo_")]/@href

将选择a/@href具有以a开头的id属性值的所有"foo_"个属性。