質問: run.SelectSingleNode(".div[@class='date']").InnerText; ``` これは、現在のノード内の``要素を選択する必要があります。さて、私はこれを試みたが、このエラーが発生しました: > 式はノード集合に評価されなければならない。説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細とコード内のどこで発生したのかについては、スタックトレースを参照してください。 > > 例外の詳細:System.Xml.XPath.XPathException:式はノードセットに評価する必要があります。 > > 助言がありますか?
回答: *HtmlAgilityPack*と*XPath*式で作業するときに役立ついくつかのことがあります。 `run`が`HtmlNode`場合は、 `HtmlNode`になります。 1. `run.SelectNodes("//div[@class='date']")` Willは`doc.DocumentNode.SelectNodes("//div[@class='date']")`まったく同じように動作します 2. `run.SelectNodes("./div[@class='date']")` `run`ノードの子であるすべての``ノードを提供します。次の深度レベルでのみ、深く検索することはありません。 3. `run.SelectNodes(".//div[@class='date']")` そのクラス属性を持つすべての``ノードを返しますが、 `run`ノードの横だけでなく、深さも検索します(可能なすべての子孫) どちらがあなたのニーズを満たすかに応じて、2.または3.のいずれかを選択する必要があります:)