整形式 XHTML ページがあります。リンクされているテキストがあるときに、リンクのリンク先URLを見つけたい。
例
<a href="http://stackoverflow.com">programming questions site</a>
<a href="http://cnn.com">news</a>
XPath 式が必要です。programming questions site
が与えられた場合、http://stackoverflow.com
を与え、news
を与えます。 http://cnn.com
を提供します。
次のようなものでなければなりません:
// a [text()= 'text_i_want_to_find']/@ href
あなたには遅すぎますが、同じ質問を持つ他の人には...
//a[contains(text(), 'programming')]/@href
もちろん、「プログラミング」は任意のテキスト断片にすることができます。
//a[text()='programming quesions site']/@href
基本的に、必要なテキストを持つアンカーノード<a>
を識別し、href
属性を抽出します。
角括弧内のフレーズは、SQLのWHERE句と考えてください。
そのため、このクエリでは、「(a /)タグのテキストコンテンツが「(」)に等しい場所(//)である「a」タグの「href」属性(@)を選択します」プログラミングに関する質問サイト '"。
大文字と小文字を区別しない場合は、次を使用します。
//a[contains(translate(text(),'PROGRAMMING','programming'), 'programming')]/@href
translateは、PROGRAMMINGの大文字を小文字のプログラミングに変換します。
hTMLアジリティパックを使用している場合は、getattributeValueを使用します。
$doc2.DocumentNode.SelectNodes("//div[@class='className']/div[@class='InternalClass']/a[@class='InternalClass']").GetAttributeValue("href","")