Think of the phrase in the square brackets as a WHERE clause in SQL.
So this query says, "select the "href" attribute (@) of an "a" tag that appears anywhere (//), but only where (the bracketed phrase) the textual contents of the "a" tag is equal to 'programming questions site'".
if you are using html agility pack use getattributeValue:
$doc2.DocumentNode.SelectNodes("//div[@class='className']/div[@class='InternalClass']/a[@class='InternalClass']").GetAttributeValue("href","")
For case insensitive contains, use the following:
//a[contains(translate(text(),'PROGRAMMING','programming'), 'programming')]/@href
translate converts capital letters in PROGRAMMING to lower case programming.
Should be something similar to:
//a[text()='text_i_want_to_find']/@href
//a[text()='programming quesions site']/@href
which basically identifies an anchor node <a>
that has the text you want, and extracts the href
attribute.
Too late for you, but for anyone else with the same question...
//a[contains(text(), 'programming')]/@href
Of course, 'programming' can be any text fragment.