如何通过链接文本与XPath找到链接URL?

fly*_*ire 86 xml xhtml xpath

我有一个结构良好的XHTML页面.我想要链接的文本时找到链接的目标URL.

<a href="http://stackoverflow.com">programming questions site</a>
<a href="http://cnn.com">news</a>
Run Code Online (Sandbox Code Playgroud)

我想要一个XPath表达式,如果给出programming questions site它将给出http://stackoverflow.com,如果我给它news,它将给出http://cnn.com.

Bad*_*aro 140

应该类似于:

//a[text()='text_i_want_to_find']/@href

  • 我会学习xpath吗?当我看到一个查询它是如此明显和易于理解...但我永远不能自己写一个 (71认同)
  • @flybywire如果你读到这个斯坦福大学的免费数据库入门课程有一个很好的部分关于XML和XPath. (4认同)
  • 而不是text(),你可以使用".=",例如//a[.='Register here'] (4认同)

小智 74

对你来说太晚了,但对于其他有同样问题的人来说......

//a[contains(text(), 'programming')]/@href
Run Code Online (Sandbox Code Playgroud)

当然,"编程"可以是任何文本片段.


Bri*_*new 9

//a[text()='programming quesions site']/@href 
Run Code Online (Sandbox Code Playgroud)

它基本上标识了<a>具有所需文本的锚节点,并提取href属性.


Bax*_*ell 6

将方括号中的短语视为SQL中的WHERE子句.

所以这个查询说,"选择出现在任何地方(//)的"a"标签的"href"属性(@),但只选择(括号内的短语)"a"标签的文本内容等于'编程问题网站'".