分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

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

发布时间:2023-09-06 01:54责任编辑:胡小海关键词:CSS选择器

一、方法说明

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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved