public List <ShouYeInfo> result = new List <ShouYeInfo>(); //用于FlipView //static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说, //是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。 //并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法, //因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。 //非静态的方法必须创建对象才能用 而这个静态的方法 //静态方法必须使用静态变量 //但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。 //因此,如果说想在不创建对象的情况下调用某个方法,就可以将这个方法设置为static。我们最常见的static方法就是main方法,至于为什么main方法必须是static的, //现在就很清楚了。因为程序在执行main方法的时候没有创建任何对象,因此只接通过类名来访问。 //这些跟Java里的类类变量和类方法一样 参考资料http://www.cnblogs.com/dolphin0520/p/3799052.html public async Task <List <ShouYeInfo> > GetShouYeInfo()//没有返回值的异步不需要等待 { string html = await GetContent.GetIndex(); //获取含有首页内容的字符串 //解析上面的字符串 HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(html); //找到一个符合条件的标签 括号内参数的格式是//标签名[@属性名='值'] //var bangumi = doc.DocumentNode.SelectSingleNode("//section"); //获得所有的子节点 //var list = bangumi.ChildNodes; //list可以用foreach遍历得到每个子节点 //一个节点的结构:<标签名 属性名1="属性值1" 属性名2="属性值2">内容</标签名> // <ldh class="rbq" price="1">真舒服</ldh> // 节点.Attitudes["节点属性名"].Value可以得到属性值 // 节点.InnerText可以得到内容的值 //如果内容是其他节点的话可以和上面一样用 节点.SelectSingleNode(string xpath) // 或者用 节点.Child[索引(0开始)] 来得到子节点 //list=ul //c.Lch = list[i].SelectSingleNode(".//em[@class='lch']").InnerText.Replace('楼', '\0'); 通过标签与类名查找 var FlipView = doc.DocumentNode.SelectSingleNode(".//ul[@class='slider-con']"); //获得//ul[@class='slider-con' 这个的节点 var FlipViewlist = FlipView.ChildNodes; foreach (var F in FlipViewlist) { var v = new ShouYeInfo(); v.Link = F.FirstChild.Attributes["href"].Value; v.Image = new Uri(F.FirstChild.FirstChild.Attributes["src"].Value); v.Name = F.FirstChild.FirstChild.Attributes["alt"].Value; v.i = 1; result.Add(v); } var FlipViewBesid = doc.DocumentNode.SelectSingleNode(".//ul[@m-id='302']");//通过id var FlipViewBesidlist = FlipViewBesid.ChildNodes; foreach (var F in FlipViewBesidlist) { var v2 = new ShouYeInfo(); //实例化一个对象 v2.Link = F.FirstChild.Attributes["href"].Value; v2.Image = new Uri(F.FirstChild.FirstChild.Attributes["src"].Value); v2.Name = F.FirstChild.FirstChild.Attributes["alt"].Value; v2.i = 2; result.Add(v2); } return(result); }
public static async Task <List <Tuijian> > GetTuijian() { List <Tuijian> result = new List <Tuijian>(); try { //获取首页内容的字符串 string html = await GetContent.GetIndex(); //解析上面的字符串 HtmlDocument doc = new HtmlDocument(); doc.LoadHtml(html); //通过ID查找 var Tuijian = doc.DocumentNode.SelectSingleNode(".//@m-id='4'"); var list = Tuijian.ChildNodes; int i = 0; foreach (var item in list) { foreach (var it in item.ChildNodes) { var v = new Tuijian(); v.Link = it.FirstChild.Attributes["href"].Value; v.Picture = new Uri(it.FirstChild.FirstChild.Attributes["src"].Value); v.Name = it.FirstChild.Attributes["title"].Value; v.Time = it.FirstChild.FirstChild.ChildNodes[2].InnerText; v.UPName = it.FirstChild.Attributes["userName"].Value; result.Add(v); } i++; } } catch (Exception ex) { } return(result); }