HTMLアジリティパックの解析

asp.net-mvc html html-agility-pack

質問

私はHTML Agility Packの新機能です。私はいくつかのドキュメントを見つけることを試みていますが、いくつかの問題があります。

私は次のコードを持っています:

<div class="person">
<a href="blah1.html">Person 1</a>
</div>
<div class="person">
<a href="blah2.html">Person 2</a>
</div>
<div class="person">
<a href="blah3.html">Person 3</a>
</div>
<div class="person">
<a href="blah4.html">Person 4</a>
</div>

パーサーを使用して、クラスの人がいるdiv内のリンクのみを取得するにはどうすればよいですか?

ありがとうございました!

受け入れられた回答

Html Agility Pack (NuGetで利用可能):

HtmlDocument html = new HtmlDocument();
html.Load(path_to_html); // or html.LoadHtml(html_string)           
var links = html.DocumentNode.SelectNodes("//div[@class='person']/a")
                .Select(n => n.GetAttributeValue("href", null));

戻り値:

"blah1.html"
"blah2.html"
"blah3.html"
"blah4.html"

人気のある回答

次のXPathはあなたの説明に対応しています:

//div[@class='person']/a/@href

personと等しいclass属性を持つ任意のdiv要素の直下にある最初a要素のhref属性を返します。

jQueryスタイルセレクタがより快適な場合は、HTML Agility Packの代わりにCsQueryを使用してみてください。



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ