Exemple #1
0
 public ListPage(PageBase parent, ListPageConfiguration configuration) : base(parent, configuration)
 {
 }
Exemple #2
0
        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);
        }
Exemple #3
0
 public ListPage(ListPageConfiguration configuration) : base(configuration)
 {
 }