Как получить Дом дерево в GeckoFX - PullRequest
2 голосов
/ 17 сентября 2009

Я начал играть с GeckoFX. К сожалению, я не нашел большой документации для этого. Мне нужно получить дерево DOM для страницы. Итерируйте каждый элемент и получите его информацию. Может ли кто-нибудь помочь мне?

Ответы [ 4 ]

6 голосов
/ 14 декабря 2010

Я знаю, что это старый вопрос, но кто-то все еще может искать ответ.

GeckoNodeCollection nodes = geckoWebBrowser1.Document.GetElementsByName("*");
foreach(GeckoNode node in nodes)
{
    //do whatever you need to do with the node .. 
    GeckoElement element = node as GeckoElement;
    //..
}
3 голосов
/ 19 января 2010

Пример кода:

GeckoElementCollection links = geckoWebBrowser1.Document.GetElementsByTagName("a");
foreach (GeckoElement link in links) {
    Debug.WriteLine(link.GetAttribute("href"));
}
0 голосов
/ 04 сентября 2017

Если вы хотите использовать XPath, вы можете попробовать это:

 browser.LoadXml("<MyTag><div>helloworld</div></MyTag>");

 var r = browser.Document.EvaluateXPath("//div");
 Assert.AreEqual(1, r.GetNodes().Count());

так в предыдущем коде:

GeckoElementCollection nodes = browser.Document.EvaluateXPath("//div").GetNodes();    
foreach(GeckoNode node in nodes)
{
    //do whatever you need to do with the node .. 
    GeckoElement element = node as GeckoElement;
    //..
}
0 голосов
/ 02 января 2010

nsIDOMNode предоставит вам способность обхода DOM. Вы можете начать с узла Document. Вы можете посмотреть в файле nsInterfaces.cs для деталей интерфейса.

...