public NSoup.Nodes.Element getElement(NSoup.Select.Elements elements, RuleConditions r) { var qdoc = elements; if (r.conditionName == "first") { return qdoc.First; } else if (r.conditionName == "eq") { return qdoc.Eq(Convert.ToInt32(r.conditionValue)).First; } else if (r.conditionName == "last") { return qdoc.Last; } else if (r.conditionName == "not") { return qdoc.Not(r.conditionValue).First; } else return qdoc.First; }
public static void LoadXml() { XmlHandle xmlhandle = new XmlHandle(bookrulexml); int num = xmlhandle.GetCount("BookSite"); if (num > 0) _rulelist = new List<BookRule>(); for (int i = 1; i <= num; i++) { BookRule rule = new BookRule(); rule.name = xmlhandle.GetValue("BookSite[" + i + "]", "Name"); rule.url = xmlhandle.GetValue("BookSite[" + i + "]", "Url"); rule.charset = xmlhandle.GetValue("BookSite[" + i + "]", "charset"); rule.title_rule = xmlhandle.GetValue("BookSite[" + i + "]/title"); rule.auther_rule = xmlhandle.GetValue("BookSite[" + i + "]/auther"); rule.cover_rule = xmlhandle.GetValue("BookSite[" + i + "]/cover"); rule.introduction_rule = xmlhandle.GetValue("BookSite[" + i + "]/introduction"); rule.catalog_rule = xmlhandle.GetValue("BookSite[" + i + "]/catalog"); rule.content_rule = xmlhandle.GetValue("BookSite[" + i + "]/content"); _rulelist.Add(rule); } num = xmlhandle.GetCount("SearchSite"); if (num > 0) _searchrulelist = new List<SearchRule>(); for (int i = 1; i <= num; i++) { SearchRule rule = new SearchRule(); rule.name = xmlhandle.GetValue("SearchSite[" + i + "]", "Name"); rule.searchurl = xmlhandle.GetValue("SearchSite[" + i + "]", "SearchUrl"); rule.charset = xmlhandle.GetValue("SearchSite[" + i + "]", "charset"); rule.list_rule = xmlhandle.GetValue("SearchSite[" + i + "]", "list"); rule.conditions =new List<RuleConditions>(); rule.title_rule = xmlhandle.GetValue("SearchSite[" + i + "]/title"); XmlAttributeCollection attcoll = xmlhandle.GetAttributes("SearchSite[" + i + "]/title"); foreach (XmlAttribute v in attcoll) { RuleConditions cond = new RuleConditions(); cond.name = "title"; cond.conditionName = v.Name; cond.conditionValue = v.Value; rule.conditions.Add(cond); } rule.auther_rule = xmlhandle.GetValue("SearchSite[" + i + "]/auther"); attcoll = xmlhandle.GetAttributes("SearchSite[" + i + "]/auther"); foreach (XmlAttribute v in attcoll) { RuleConditions cond = new RuleConditions(); cond.name = "auther"; cond.conditionName = v.Name; cond.conditionValue = v.Value; rule.conditions.Add(cond); } rule.cover_rule = xmlhandle.GetValue("SearchSite[" + i + "]/cover"); attcoll = xmlhandle.GetAttributes("SearchSite[" + i + "]/cover"); foreach (XmlAttribute v in attcoll) { RuleConditions cond = new RuleConditions(); cond.name = "cover"; cond.conditionName = v.Name; cond.conditionValue = v.Value; rule.conditions.Add(cond); } rule.introduction_rule = xmlhandle.GetValue("SearchSite[" + i + "]/introduction"); attcoll = xmlhandle.GetAttributes("SearchSite[" + i + "]/introduction"); foreach (XmlAttribute v in attcoll) { RuleConditions cond = new RuleConditions(); cond.name = "introduction"; cond.conditionName = v.Name; cond.conditionValue = v.Value; rule.conditions.Add(cond); } rule.bookurl_rule = xmlhandle.GetValue("SearchSite[" + i + "]/bookurl"); attcoll = xmlhandle.GetAttributes("SearchSite[" + i + "]/bookurl"); foreach (XmlAttribute v in attcoll) { RuleConditions cond = new RuleConditions(); cond.name = "bookurl"; cond.conditionName = v.Name; cond.conditionValue = v.Value; rule.conditions.Add(cond); } _searchrulelist.Add(rule); } }