3
私はクラス名XYZでdivを探しています。その中にABCという名前の要素をループしたいと思います。次に、内部のリンク(a href)とおそらく他の情報を取得します。HtmlElement(Collection)とウェブブラウザで特定のデータを見つける
webBrowser1.Document.Links
と任意のサブアイテムからXYZを持つdivを見つけるにはどうすればよいですか?
私はクラス名XYZでdivを探しています。その中にABCという名前の要素をループしたいと思います。次に、内部のリンク(a href)とおそらく他の情報を取得します。HtmlElement(Collection)とウェブブラウザで特定のデータを見つける
webBrowser1.Document.Links
と任意のサブアイテムからXYZを持つdivを見つけるにはどうすればよいですか?
まず、クラス名がXYZのdivを探したいと言ったので、なぜwebBrowser1.Documnet.Linksを調べていますか?最初にDivを見つけて、その中のリンクにアクセスしてください。
HtmlDocument doc = webBrowser.Document;
HtmlElementCollection col = doc.GetElementsByTagName("div");
foreach (HtmlElement element in col)
{
string cls = element.GetAttribute("className");
if (String.IsNullOrEmpty(cls) || !cls.Equals("XYZ"))
continue;
HtmlElementCollection childDivs = element.Children.GetElementsByName("ABC");
foreach (HtmlElement childElement in childDivs)
{
//grab links and other stuff same way
}
}
「class」の代わりに「className」を使用すると、適切なクラスの名前が表示されます。 "class"だけを使用すると、空の文字列が返されます。これはMSDN - SetAttributeに記載されていますが、GetAttributeには記載されていません。だからそれは少し混乱の原因になります。