当前位置: 首页 > news >正文

HtmlAttribute HTML属性处理类

 

  HtmlAttribute 在HtmlAgilityPack扮演的是一个HTML代码属性的容器,同时提供了用于处理HTML属性的一些功能。

一、属性

int Line { get; }           获取文档中的此属性的行数。
int LinePosition { get; }       获取文档中此属性所在列数
string Name { get; set; }       当前属性的名称
string OriginalName { get; }     当前属性未经更改的属性
HtmlDocument OwnerDocument { get; }    返回当前属性所在的文档引用
HtmlNode OwnerNode { get; }    当前属性所在节点的引用
AttributeValueQuote QuoteType { get; set; } 返回一个枚举值,指示属性包装在单引号里还是双引号里
int StreamPosition { get; }      此属性开始位置位于整个文档的字符位置
string Value { get; set; }      此属性的值
string XPath { get; }         返回属性的访问XPath表达式

二、方法

HtmlAttribute Clone();        克隆到另外一个HttpAttribute
int CompareTo(object obj);    将当前实例与另一个属性进行比较。比较基于属性的名称。
void Remove();           从文档中移除该属性

        static void Main(string[] args)
        {
            //<ul class="user_match clear">
            //    <li>年龄:21~30之间</li>
            //    <li>婚史:未婚</li>
            //    <li>地区:不限</li>
            //    <li>身高:175~185厘米之间</li>
            //    <li>学历:不限</li>
            //    <li>职业:不限</li>
            //    <li>月薪:不限</li>
            //    <li>住房:不限</li>
            //    <li>购车:不限</li>
            //</ul>

            WebClient wc = new WebClient();
            wc.BaseAddress = "http://www.juedui100.com/";
            wc.Encoding = Encoding.UTF8;
            HtmlDocument doc = new HtmlDocument();
            string html = wc.DownloadString("user/6971070.html");
            doc.LoadHtml(html);
            HtmlNode node = doc.DocumentNode.SelectSingleNode("/html/body/div[4]/div[1]/div[2]/ul[1]");     //根据XPath查找节点,跟XmlNode差不多
            HtmlAttribute attr = node.Attributes["class"];
            Console.WriteLine(attr.Line);   //输出 155    此属性所在文档的行数
            Console.WriteLine(attr.LinePosition);   //输出 6  此属性位于文档的列数
            Console.WriteLine(attr.Name);   //输出 class  属性名
            Console.WriteLine(attr.OriginalName);   //输出 class  未经过更改的原始属性名
            Console.WriteLine(attr.OwnerDocument);  //获取所在文档
            HtmlNode node1 = attr.OwnerNode;
            Console.WriteLine(node1.Name);      //输出 ul
            AttributeValueQuote ty = attr.QuoteType;    //指定的数据包装在双引号里还是单引号里
            Console.WriteLine(ty.ToString());   //输出 DoubleQuote        AttributeValueQuote是一个枚举,只有两个值SingleQuote与DoubleQuote
            Console.WriteLine(attr.StreamPosition);     //输出7355    属性所在文档的字符位置
            Console.WriteLine(attr.Value);      //输出 user_match clear  属性的值
            Console.WriteLine(attr.XPath);      //输出 /html[1]/body[1]/div[4]/div[1]/div[2]/ul[1]/@class[1]    当前属性的访问XPath表达式

            HtmlAttribute attr1 = attr.Clone();
            Console.WriteLine(attr1.Name + " : " + attr1.Value);    //输出 class : user_match clear
            //Compareto(Object obj)
            attr.Remove();
            Console.WriteLine(node.OuterHtml);     //输出 <ul><li>.....</ul>  该属性已被移除

            Console.ReadKey();
        }

 

 

相关文章:

  • 当无人编辑坐镇新闻编辑部?未来人机社会共存指南
  • 两个listbox实现选项的添加删除和搜索
  • $jQuery 重写Alert样式方法
  • unbunt的svn重启动命令
  • JQ实现购物车价格计算
  • Android UI开发第二十九篇——Android中五种常用的menu(菜单)
  • 安装配置资产管理软件GLPI
  • 走得不是很前但还是走在时代尖端
  • 一行python 生成终端二维码
  • Node.js 0.8.22 稳定版发布
  • SLAM技能树
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • openwrt无线连接互联网的实现原理【1】
  • 大作业分析
  • 常用Git操作
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Magento 1.x 中文订单打印乱码
  • Python爬虫--- 1.3 BS4库的解析器
  • vue的全局变量和全局拦截请求器
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • 基于axios的vue插件,让http请求更简单
  • 时间复杂度与空间复杂度分析
  • 写代码的正确姿势
  • 译米田引理
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (02)Hive SQL编译成MapReduce任务的过程
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (30)数组元素和与数字和的绝对差
  • (7)STL算法之交换赋值
  • (C语言)fread与fwrite详解
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转) ns2/nam与nam实现相关的文件
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • ./configure,make,make install的作用
  • .FileZilla的使用和主动模式被动模式介绍
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .net Signalr 使用笔记
  • .NET 材料检测系统崩溃分析
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .net程序集学习心得
  • /etc/motd and /etc/issue
  • @Query中countQuery的介绍
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [Android]竖直滑动选择器WheelView的实现
  • [Apio2012]dispatching 左偏树
  • [C#] 如何调用Python脚本程序
  • [C\C++]读入优化【技巧】
  • [CareerCup] 14.5 Object Reflection 对象反射
  • [Contest20180313]灵大会议
  • [FROM COM张]如何解决Nios II SBTE中出现的undefined reference to `xxx'警告
  • [HNOI2008]玩具装箱toy
  • [HOW TO]怎么在iPhone程序中实现可多选可搜索按字母排序的联系人选择器