1. 程式人生 > >CsQuery獲取IDomObject元素的完整CSS選擇器

CsQuery獲取IDomObject元素的完整CSS選擇器

cccccc reac result contains () strings border sselect 版權信息

一、方法說明

通過IDomObject元素,獲取完整的CSS選擇器,過濾HTML和BODY元素,自動將class、id添加到選擇器上,優先添加class,無class再添加id。如:

<html>
 <head></head> 
 <body> 
  <div id="result"> 
   <h3 class="t"><a "="" href="http://www.baidu.com/link?url=PgEyrxusTKZjg64DFOd_qlTy4o7dXLH_26WOy1mg6JUwVE4L_KrH24eG7s49yN8R-iBqQEb80m2gLmAzab8FIK&amp;ck=4276.4.1526360648567.0.0.250.568.0&amp;shh=www.baidu.com&amp;sht=baidu"
target="_blank">CSS教程</a></h3> </div> </body> </html>

a元素的完整的CSS選擇器為:DIV#result H3.t A

二、方法實現

public string GetFullCssSelector(IDomObject dom)
{
    string str = "";
    while (dom != null && dom.NodeName != null)
    {
        string nodeName = dom.NodeName;
        
if (!(new[] {"HTML", "BODY"}.Contains(nodeName))) //過濾HTML、BODY { if (dom.HasAttribute("class")) { string s = dom.Attributes["class"]; s = s.Replace(" ", " ").Replace(" ", " ").Replace(" ", " "); string[] strings = s.Split(
); foreach (string str2 in strings) { nodeName += "." + str2; } } else if (dom.HasAttribute("id")) { nodeName += "#" + dom.Attributes["id"]; } str = nodeName + " " + str; } dom = dom.ParentNode; } return str.Trim(); }

--版權信息--

轉載請標明文章出處,謝謝!

文章作者:易幾 http://www.cnblogs.com/InfoStudio/

--版權信息--

CsQuery獲取IDomObject元素的完整CSS選擇器