HTML Agile Packを含むVB.NETのXPath

html-agility-pack vb.net xpath

質問

私は次のvb.netコードを正常に動作し、メッセージボックスにid属性を持つ要素の正確な数が表示されます。

Dim hreftext = htmldoc.DocumentNode.SelectNodes("//*[@id]")
 MsgBox(hreftext.Count)

今問題は、私はそれが私に与えられたメッセージボックスで次のものを使用するときオブジェクトのインスタンスに設定されていないオブジェクト参照があるが、IDのrso

Dim hreftext = htmldoc.DocumentNode.SelectNodes("//*[@id='rso']")
 MsgBox(hreftext.Count)

2番目のスニペットに何か問題がありますか?

受け入れられた回答

あなたのSOの質問の別の1つを読んで、それはあなたがGoogleショッピングを掻きしようとしているようだ、ダウンロードされたHTMLのソースではなく、生成されたDOMをチェックすることを怠っているようです。

id "rso"はhtmlソースには表示されないため、エラーが発生しています。 Googleは削られたことに熱心ではなく、確かにそれを困難にしている。

つまり、フォームに複数行のテキストボックスを追加して、現在のxpathコードの代わりにこれを追加することができます。

TextBox1.Text = htmldoc.DocumentNode.OuterHtml

それはかなりです!


人気のある回答

ケースのチェックを詳しく説明する

試してください:

Dim hreftext = htmldoc.DocumentNode.SelectNodes("//*[translate(@id,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='rso']")
 MsgBox(hreftext.Count)

'rso'の任意の大文字と小文字の組み合わせに等しいノードを取得するには、



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow