Html Agility Pack C#:Expressionはノードセットに評価される必要があります

c# html-agility-pack web-scraping

質問

私はHtml Agility Packを使ってWebページを取得しています。次のフォームの私が探しているすべてのテキストを収集したい:

<li><a href="/deal/map/4087664" class="show-location" title="bla bla" data-address="TEXT I AM LOOKING FOR"></a></li>

私はこのコードを試した:

var web = new HtmlWeb();
var doc = web.Load(url);

var nodes1 = doc.DocumentNode.SelectNodes("//[@data-address]");
var nodes2 = doc.DocumentNode.SelectNodes("//[@data-address={0}]");

両方とも例外を投げた。表現はノード集合に評価されなければならない。セレクタを修正するにはどうしたらいいですか?

受け入れられた回答

私はXPathのエキスパートではありませんが、あなたが望むと思う:

// Note the *
var nodes1 = doc.DocumentNode.SelectNodes("//*[@data-address]");

つまり、「 data-address属性を持つ要素」は、



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