您的位置:首页 > Web前端 > HTML

HtmlAttribute HTML属性处理类

2014-07-11 14:51 183 查看
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();
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: