zoukankan      html  css  js  c++  java
  • 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();
            }

     

  • 相关阅读:
    《你的灯还亮着吗》读后感1
    找"1"
    阅读计划---《梦断代码》3
    阅读计划---《梦断代码》2
    个人工作总结(10)
    个人工作总结(9)
    个人工作总结(8)
    个人工作总结(7)
    学习进度条
    个人工作总结(6)
  • 原文地址:https://www.cnblogs.com/kissdodog/p/2937795.html
Copyright © 2011-2022 走看看