2016-01-12 191 views
0

enter image description here与web浏览器

<div class="countdownHolder"> <span class="countMinutes"> <span class="position"> <span class="digit static" style="top: 0px; opacity: 1; transition: 350ms ease;">0</span> </span> <span class="position"> <span class="digit static" style="top: 0px; opacity: 1; transition: 350ms ease;">0</span> </span> </span> <span class="countDiv countDiv0">:</span> <span class="countSeconds"> <span class="position"> <span class="digit static" style="top: 0px; opacity: 1; transition: 350ms ease;">4</span> </span> <span class="position"> <span class="digit static" style="top: 0px; opacity: 1; transition: 350ms ease;">0</span> </span> </span> </div> 

我试着去阅读的价值在阅读HTML类此图像中强调的,不太清楚如何从我在哪里得到它。

功能

private HtmlElement[] GetElementsByClassName(WebBrowser wb, string tagName, string className) 
{ 
    var l = new System.Collections.Generic.List<HtmlElement>(); 

    if (wb != null && wb.Document != null) 
    { 
     var els = wb.Document.GetElementsByTagName(tagName); 
     foreach (HtmlElement el in els) 
     { 
      if (el.GetAttribute("className") == className) 
      { 
       l.Add(el); 
      } 
     } 
    } 

    return l.ToArray(); 
} 

IM如何调用它,它似乎找到countdownHolder类

var countdownHolder = GetElementsByClassName(_webBrowser, "div", "countdownHolder"); 
if (countdownHolder.Length != 0) 
{ 

} 

回答

1

我不知道答案,但我建议的策略:

var countdownHolder = GetElementsByClassName(_webBrowser, "div", "countdownHolder"); 
foreach (var element in countdownHolder.ToList()) 
{ 
    // inspect element here 
} 

GetElementsByClassName工程。

已更新:

下面应该给你你想要的。 element

UPDATE的

foreach (var element in countdownHolder) 
{ 
    var item1 = element.InnerText; //or 
    var item2 = element.OuterText; //both give the same answer here 
    // do something 
} 

一般而言,查看属性2:

实际结构是:

<div class='countdownHolder'> 
    <span class='countMinutes'> 
     <span class='position'> 
      <span class='digit static' style='top: 0px; opacity: 1; transition: 350ms ease;'> 
       0 
      </span> 
     </span> 
     <span class='position'> 
      <span class='digit static' style='top: 0px; opacity: 1; transition: 350ms ease;'> 
      0 
      </span> 
     </span> 
    </span> 
    <span class='countDiv countDiv0'> 
     : 
    </span> 
    <span class='countSeconds'> 
     <span class='position'> 
      <span class='digit static' style='top: 0px; opacity: 1; transition: 350ms ease;'> 
       4 
      </span> 
     </span> 
     <span class='position'> 
      <span class='digit static' style='top: 0px; opacity: 1; transition: 350ms ease;'> 
       0 
      </span> 
     </span> 
    </span> 
</div> 

嵌入文本给出了分,秒与:作为分隔符。在这个例子中00:40。有了额外的空间:0 0 : 4 0

现在您只需要简单的字符串处理。你可以用各种方法做到这一点。 string time = element.InnerText.Replace(" ", "");将删除空格。然后有多种不同的方式来处理结果min:sec结构

+0

我不能100%确定使用什么函数来读取HTML – ramafe

+0

上的每个部分我可以看到我想要在GetElementsByClassName中使用的所有类我的问题是我不知道如何走下所有的类从那里找到我的价值,因为你可以看到GetElementsByClassName HtmlDocument不知道如何从每个元素传递 – ramafe

+0

真正的Html是一个网站,其巨大的 – ramafe