2016-01-12 189 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