如何通过XPath链接文本find链接URL?
我有一个格式良好的XHTML页面。 当我有链接的文本时,我想查找链接的目标url。
例
<a href="http://stackoverflow.com">programming questions site</a> <a href="http://cnn.com">news</a>
我想要一个XPathexpression式,如果给定的programming questions site
它会给http://stackoverflow.com
,如果我给它的news
它会给http://cnn.com
。
应该类似于:
//一个[文本()= 'text_i_want_to_find'] / @ HREF
对你来说太迟了,但对于有同样问题的其他人呢…
//a[contains(text(), 'programming')]/@href
当然,“编程”可以是任何文本片段。
//a[text()='programming quesions site']/@href
它基本上标识了一个具有你想要的文本的锚节点<a>
,并提取了href
属性。
将方括号中的短语想象为SQL中的WHERE子句。
所以这个查询说:“select”a“标签的”href“属性(@),该标签出现在任何地方(//),但是只有”a“标签的文本内容等于”编程问题网站'“。
如果不区分大小写,请使用以下命令:
//a[contains(translate(text(),'PROGRAMMING','programming'), 'programming')]/@href
翻译将编程中的大写字母转换为小写字母编程。
如果您使用的是HTML敏捷包,请使用getattributeValue:
$doc2.DocumentNode.SelectNodes("//div[@class='className']/div[@class='InternalClass']/a[@class='InternalClass']").GetAttributeValue("href","")