私はそれらのすべてがこのような構造持って、私は10個のリンクを持っている
このような構造を持つすべての要素を見つけるしたい
C#でのXPathに問題がいる:
HTML XPathは、クラス名による検索
<div class="PartialSearchResults-item" data-zen="true">
<div class="PartialSearchResults-item-title">
<a class="PartialSearchResults-item-title-link result-link"target="_blank" href='https://www.google.com/'> Google</a>
</div>
<p class="PartialSearchResults-item-url">www.google.com</p>
<p class="PartialSearchResults-item-abstract">Search the world.</p>
</div>
をたとえば、このサンプルでは、「Google」と「www.google.com」と「Search the world」を取得したいと考えています。
var titles = hd.DocumentNode.SelectNodes("//div[contains(@class, 'PartialSearchResults-item')]");
string link;
foreach (HtmlNode node in titles){
string description = node.SelectSingleNode(".//*[contains(@class,'PartialSearchResults-item-abstract')]").InnerText;
link = node.SelectSingleNode(".//*[contains(@class,'PartialSearchResults-item-url')]").InnerText;
string title = node.SelectSingleNode(".//a[contains(@class,'PartialSearchResults-item-title-link result-link')]").InnerText;}
しかし、私はこの問題は、あなたがtitles
を取得しているクエリであるエラーnull参照に
のようにそれを照会することができますので、あなたのケースでは、あなたのルートノードは、ただ一つのクラス
PartialSearchResults-item
を持っています'(例えば。)私は他のクラスも持っています。この構文を使用するために 'var titles = hd.DocumentNode.SelectNodes(" // div [@ class = 'PartialSearchResults-item'] ");' を使用して結果を得ることができません。すべてのクラス名を付ける必要があります一緒に固定されません。 – Divya