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