HTMLアジリティパックを使用して特定の表セルを選択する方法

html-agility-pack vb.net xpath

質問

HTMLテーブルのセルから特定のフィールドを取り出す必要があります。 Firebugを使用して、私は必要なセルに正確なXPathを得ることができました(残念ながら、セルにはidタグがありません)。私はDocumentNode.SelectSingleNodeを使用してそのパスを渡すことができると考えましたが、正しく動作していないようです。私は間違って何をしていますか?それとも私がこれをやっているのかより良いアプローチがありますか?残念ながら、私はXPathの経験がないので、これは私が期待していたよりも難しくなっています。ここに私がこれまで持っていたことがあります(私はHTMLが特に厄介であることを知っていますが、変更するのは私のコントロールではありません):

Dim page As New HtmlAgilityPack.HtmlDocument
Dim node As HtmlAgilityPack.HtmlNode
page.LoadHtml(fileContents)
node = page.DocumentNode.SelectSingleNode("/html/body/form/div[6]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[2]")

とても有難い。

受け入れられた回答

Firebugは、壊れたHTMLタグを修正する可能性があります。あなたはノードを選択し、HTMLにしたい場合は、使用クラスまたはIDをお勧めします。例えば:

//div[@class='content']//table//tr[1]/td[2]

経路の短縮、およびクラスまたはIDセレクタを使用します。

テーブルに独自のIDがある場合は、次のように使用できます。

//div[@class='content']//table//tr[1]/td[2]

それを試してみてください、XPATHが面白いです。




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