C#HtmlAgilityPack HtmlNodeCollection選択ノードが機能しない

c# html html-agility-pack selectnodes xpath

質問

これは私が使用しているコード行です。ウォッチウィンドウを見ると 'c'はヌルです。

HtmlNodeCollection c = doc.DocumentNode.SelectNodes("//*[@id=\"content\"]/table/tbody/tr[2]/td/center[2]/b");

しかし、私はこれを 'c'と宣言すると、ウォッチウィンドウはそれが有効なHtmlNodeCollectionであることを示します

HtmlNodeCollection c = doc.DocumentNode.SelectNodes("//*[@id=\"content\"]/table/tbody/tr[2]/td/center[2]/b");

最初のコードスニペットに 'c'を設定すると、nullに戻ってしまいます。

私は取得したい要素のChrome Inspect ElementからXPathを取得したので、XPathが正しいことを知っています。

人気のある回答

SelectNodesは何も見つからなかった場合にnullを返します。

ブラウザ(Chrome、Firefoxなど)で構築したXPATHを使用しているため、XPATHが正常であると思っていますが、残念ながらこのXPATHはネットワーク(ファイルまたはrawストリーム) 。

ブラウザは内部的に使用するメモリ内DOMに依存しており、これは劇的に異なる可能性があります。そのため、マークアップではなくDOMにのみ存在するTBODYなどの要素が表示されます(オプションの場合)。

ですから、あなたはHtml Agility Packに与えた文字列/ストリームに戻り、そのXPATHを再度確認することをお勧めします。 TBODYはありません。




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