C#/ Html Agility pack error "値はnullにはできません。パラメータ名:Source"


質問

以前はhtml agility packを使っていましたが、少し試行錯誤して良い結果を出しました。私は現在、XPathを使ってノードセットを返すためにこれを使用しようとしています。これは、Firefoxで「XPathをコピー」を右クリックすることによって得られます。私はいくつかの検索をしており、ブラウザーがテーブルタグに "tbody"を追加することが多いことがわかります。私は運がないとこれを削除してそれを試してみました。 Firefoxに私に与えられたxpathは次のとおりです:

/html/body/p[3]/table/tbody/tr/td/table/tbody/tr[3]

これを使用すると、「 値はnullではありません。パラメータ名:ソース 」というエラーがスローされます。

これはオンラインで発生します:

/html/body/p[3]/table/tbody/tr/td/table/tbody/tr[3]

私はこれを読んでいきますが、その間に誰にも簡単に解決できるのであれば、ヒントをいただければ幸いです。

更新:これは実際のコードです:

/html/body/p[3]/table/tbody/tr/td/table/tbody/tr[3]

人気のある回答

このエラーは次の行で発生しているようです:

nodeList = htmlDoc.DocumentNode.SelectNodes("/html/body/p[3]/table/tbody/tr/td/table/tbody/tr[3]").ToList();

つまり、 SelectNodesメソッドが渡されたxpath式でノードを見つけられない場合、 null返しnullHTML Agility Pack Null Referenceと同様の質問に対するこの回答で、より多くの情報を見つけることができます。そして、実際にNullReferenceException引き起こすnullオブジェクトに対してToList()メソッドを呼び出します。

このチェックを避けるには、次のようにnullに対するこの変数を使用しnull

nodeList = htmlDoc.DocumentNode.SelectNodes("/html/body/p[3]/table/tbody/tr/td/table/tbody/tr[3]").ToList();




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