どのように同じクラス属性を持つHTMLからすべての要素を取得するには?

c# html html-agility-pack xpath

質問

私は同じクラスの属性であるすべての<div>タグを取得するためにhtmlagility dllを使用して1つのasp.netアプリケーションを開発しています。
どのようにHTMLページ全体から同じクラスを持つすべての要素を取得するには、
私はclass = 'myclass'を持っているトップ1 divを取得していますが、
私の場合私は 'myclass'クラスを持つすべてのdivタグにしたいです。

var vardoc = web.Load("<any website url>"); 
var varmyclass = doc.DocumentNode.SelectSingleNode("//div[@class='myclass']"); 

上記のメソッドを使用すると、 'myclass'の内部HTMLコンテンツが取得されますが、HTMLコンテンツには、クラス 'myclass'を持つdivタグが多数あります。私は、HTML5や他のものを使って同じクラスを持つすべての<div>を取得したい

受け入れられた回答

その場合は単一のノードを選択しないでください。

SelectSingleNodeを使用していますSelectSingleNodeは1つのノードのみを返します。

代わりにSelectNodesを使用してください:

var varmyclass = doc.DocumentNode.SelectNodes("//div[@class='myclass']");

人気のある回答

2つの問題は、最初に、 SelectNodes()を使用する必要があるということです。これは、複数のノードを選択する必要があるため、他の回答が指摘しています。

また、XPathは少し制限があります。 1つのクラスmyclassだけを持つdiv要素を取得しますが、複数のクラスを持つdiv要素は含みません。私はそれらも含めたいと思う。クラスが等しいかどうかを調べるのではなく、クラスが等しいかどうかを調べます。

var xpath = "//div[contains(@class,'myclass')]";
var query = doc.DocumentNode.SelectNodes(xpath);



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