public ListPage(PageBase parent, ListPageConfiguration configuration) : base(parent, configuration) { }
private static ListPageConfiguration CreateListPageConfiguration(PageConfiguration parent, XmlNode pageConfNode) { XmlNode commonConfigNode = null; if (pageConfNode.Attributes["Config"] != null) { commonConfigNode = pageConfNode.ParentNode.SelectSingleNode(string.Format("CommonConfig[@Name='{0}']", pageConfNode.Attributes["Config"].Value)); } ListPageConfiguration pageConf = new ListPageConfiguration(parent); pageConf.PageName = pageConfNode.Attributes["PageName"].Value; pageConf.PageUrl = pageConfNode.Attributes["PageUrl"].Value; if (pageConfNode.Attributes["PageType"] != null) { pageConf.PageType = (PageType)Enum.Parse(typeof(PageType), pageConfNode.Attributes["PageType"].Value, false); } else if (commonConfigNode.Attributes["PageType"] != null) { pageConf.PageType = (PageType)Enum.Parse(typeof(PageType), commonConfigNode.Attributes["PageType"].Value, false); } if (pageConfNode.Attributes["PageQuery"] != null) { pageConf.PageQuery = pageConfNode.Attributes["PageQuery"].Value; } else if (commonConfigNode != null && commonConfigNode.Attributes["PageQuery"] != null) { pageConf.PageQuery = commonConfigNode.Attributes["PageQuery"].Value; } if (pageConfNode.Attributes["ReplacePageQuery"] != null) { pageConf.ReplacePageQuery = pageConfNode.Attributes["ReplacePageQuery"].Value; } else if (commonConfigNode != null && commonConfigNode.Attributes["ReplacePageQuery"] != null) { pageConf.ReplacePageQuery = commonConfigNode.Attributes["ReplacePageQuery"].Value; } if (pageConfNode.Attributes["PageIndexFormat"] != null) { pageConf.PageIndexFormat = pageConfNode.Attributes["PageIndexFormat"].Value; } else if (commonConfigNode != null && commonConfigNode.Attributes["PageIndexFormat"] != null) { pageConf.PageIndexFormat = commonConfigNode.Attributes["PageIndexFormat"].Value; } if (pageConfNode.Attributes["PageIndexSeed"] != null) { pageConf.PageIndexSeed = int.Parse(pageConfNode.Attributes["PageIndexSeed"].Value); } else if (commonConfigNode != null && commonConfigNode.Attributes["PageIndexSeed"] != null) { pageConf.PageIndexSeed = int.Parse(commonConfigNode.Attributes["PageIndexSeed"].Value); } if (pageConfNode.Attributes["PageIndexStep"] != null) { pageConf.PageIndexStep = int.Parse(pageConfNode.Attributes["PageIndexStep"].Value); } else if (commonConfigNode != null && commonConfigNode.Attributes["PageIndexStep"] != null) { pageConf.PageIndexStep = int.Parse(commonConfigNode.Attributes["PageIndexStep"].Value); } if (pageConfNode.Attributes["PageMethod"] != null) { pageConf.PageMethod = (PageMethod)Enum.Parse(typeof(PageMethod), pageConfNode.Attributes["PageMethod"].Value); } else if (commonConfigNode != null && commonConfigNode.Attributes["PageMethod"] != null) { pageConf.PageMethod = (PageMethod)Enum.Parse(typeof(PageMethod), commonConfigNode.Attributes["PageMethod"].Value); } if (pageConfNode.Attributes["EndPageDetermineRegex"] != null) { pageConf.EndPageDetermineRegex = pageConfNode.Attributes["EndPageDetermineRegex"].Value; } else if (commonConfigNode != null && commonConfigNode.Attributes["EndPageDetermineRegex"] != null) { pageConf.EndPageDetermineRegex = commonConfigNode.Attributes["EndPageDetermineRegex"].Value; } if (pageConfNode.Attributes["For"] != null) { pageConf.For = bool.Parse(pageConfNode.Attributes["For"].Value); } else if (commonConfigNode != null && commonConfigNode.Attributes["For"] != null) { pageConf.For = bool.Parse(commonConfigNode.Attributes["For"].Value); } if (pageConfNode.Attributes["Encoding"] != null) { pageConf.Encoding = Encoding.GetEncoding(pageConfNode.Attributes["Encoding"].Value); } else if (commonConfigNode != null && commonConfigNode.Attributes["Encoding"] != null) { pageConf.Encoding = Encoding.GetEncoding(commonConfigNode.Attributes["Encoding"].Value); } XmlNode snifferUrlItemNode = pageConfNode.SelectSingleNode("SnifferSubPageUrlItem"); if (commonConfigNode != null && snifferUrlItemNode == null) { snifferUrlItemNode = commonConfigNode.SelectSingleNode("SnifferSubPageUrlItem"); } if (snifferUrlItemNode != null) { pageConf.SnifferSubPageUrlItem = CreateSnifferUrlItem(snifferUrlItemNode); } else { throw new System.Exception(string.Format("{0} 页没有配置 SnifferUrlItem 节点", pageConf.PageName)); } XmlNode subPageNode = pageConfNode.SelectSingleNode("SnifferPage"); if (commonConfigNode != null && subPageNode == null) { subPageNode = commonConfigNode.SelectSingleNode("SnifferPage"); } if (subPageNode != null) { if (subPageNode.Attributes["PageType"].Value == "DetailPage") { pageConf.SubPageConfiguration = CreateDetailPageConfiguration(pageConf, pageConfNode, subPageNode); } else { pageConf.SubPageConfiguration = CreateListPageConfiguration(pageConf, subPageNode); } } return(pageConf); }
public ListPage(ListPageConfiguration configuration) : base(configuration) { }