private void GetSubNode(CatalogNodeGroupDef groupNode, XElement groupEle)
        {
            var eles = groupEle.Elements();

            if (eles == null)
            {
                return;
            }
            foreach (XElement e in eles)
            {
                string name = e.Name.LocalName.ToUpper();
                switch (name)
                {
                case "CATALOGNODEGROUP":
                    CatalogNodeGroupDef group = GetGroupNode(e);
                    if (group != null)
                    {
                        groupNode.NodeDefs.Add(group);
                        GetSubNode(group, e);
                    }
                    break;

                case "CATALOGNODE":
                    CatalogNodeDef node = GetNode(e);
                    if (node != null)
                    {
                        groupNode.NodeDefs.Add(node);
                    }
                    break;
                }
            }
        }
        private CatalogDef GetExtractCatalog(XElement ele)
        {
            var eles = ele.Elements();

            if (eles == null)
            {
                return(null);
            }
            string text        = GetStringAttValue(ele, "text");
            string classString = GetStringAttValue(ele, "class");
            string identify    = GetStringAttValue(ele, "identify");
            List <CatalogNodeItemDef> nodes = new List <CatalogNodeItemDef>();

            foreach (XElement e in eles)
            {
                string name = e.Name.LocalName.ToUpper();
                switch (name)
                {
                case "CATALOGNODEGROUP":
                    CatalogNodeGroupDef group = GetGroupNode(e);
                    if (group != null)
                    {
                        nodes.Add(group);
                        GetSubNode(group, e);
                    }
                    break;

                case "CATALOGNODE":
                    CatalogNodeDef node = GetNode(e);
                    if (node != null)
                    {
                        nodes.Add(node);
                    }
                    break;
                }
            }
            ExtractingCatalogDef catalog = new ExtractingCatalogDef(classString, text, identify);

            catalog.NodeDefs = nodes;
            return(catalog);
        }