首页 > Web开发 > 详细

CsQuery获取IDomObject元素的完整CSS选择器

时间:2018-05-15 13:45:43      阅读:412      评论:0      收藏:0      [点我收藏+]

一、方法说明

通过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选择器

原文:https://www.cnblogs.com/InfoStudio/p/9040474.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!