首页 > 代码库 > HtmlAttribute HTML属性处理类

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();        }