一、方法说明

通过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/

--版权信息--

最新文章

  1. Java 9将采用新的版本字符串格式
  2. 概念:P制,N制,奇场,偶场,隔行扫描,逐行扫描
  3. LAMP之准备,samba搭建
  4. 9.S5PV210的时钟系统
  5. 使用sqlserver的游标功能来导数据的常见写法
  6. js 设置回车事件
  7. 如何用C#代码查找某个路径下是否包含某个文件
  8. 2014年最火的 21个JavaScript 框架
  9. 【转】hive简介安装 配置常见问题和例子
  10. What is a heap?--reference
  11. HDU 3376 &amp;amp;&amp;amp; 2686 方格取数 最大和 费用流裸题
  12. angular指令系列---多行文本框自动高度
  13. 在win7下如何设置计划任务每一分钟执行一次
  14. .md即markdown文件的基本常用编写语法
  15. JavaWeb笔记一、Servlet 详解
  16. 微信小程序开发小记
  17. post推送消息时的乱码
  18. Slider绑定事件,初始化NullPointerException错误
  19. Vue(六) 表单与 v-model
  20. X5webview去掉分享功能和缓存功能

热门文章

  1. extjs 解决使用store.sync()方法更新item有时不触发后台action的问题
  2. 【Objective-C】内存管理
  3. Flex(ActionScript)与JavaScript交互的两种方式示例
  4. PEB标记反调试方法
  5. Python数据科学“冷门”库
  6. Dockerfile 中的 multi-stage(多阶段构建)
  7. sharding:谁都能读懂的分库、分表、分区
  8. Perl数组和hash相关函数
  9. maven web工程缺少 src/main/java 和 src/test/java 资源文件夹的方法
  10. webAPI 控制器(Controller)太多怎么办?