/// <summary>
        /// 根据模块生成XML
        /// </summary>
        /// <param name="list"></param>
        /// <param name="parentID"></param>
        /// <param name="parentNode"></param>
        /// <param name="xDoc"></param>
        /// <param name="ds"></param>
        public void CreateXmlByModule(List<ModulesContract> list, int parentID, XmlNode parentNode, XmlDocument xDoc, DataSet ds)
        {
            //查询所有父节点
            List<ModulesContract> list_parentModules = list.Where(m => m.ModuleParentID == parentID).ToList();
            foreach (ModulesContract item in list_parentModules)
            {
                //判断菜单是否可用
                if (item.IsMenu == 0)
                {
                    //获取当前菜单下所有操作动作
                    List<AuthorityContract> list_Authority = authorityServices.GetAuthorityByModuleID(item.ModuleID);
                    //判断当前菜单是否拥有浏览权限
                    if (list_Authority.Where(a => a.AuthorityTag == "GN_BROWSE").SingleOrDefault() == null)
                    {
                        continue;
                    }
                    foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        if (int.Parse(dr["ModuleID"].ToString()) != item.ModuleID)
                        {
                            continue;
                        }

                        #region 生成菜单节点
                        XmlNode xNode = xDoc.CreateNode(XmlNodeType.Element, "tree", null);
                        AttributeParameter[] parameter = new AttributeParameter[]
                            {
                                new AttributeParameter("id",item.ModuleID.ToString()),
                                new AttributeParameter("name",item.ModuleName),
                                new AttributeParameter("areas",item.ModuleAreas),
                                new AttributeParameter("controller",item.ModuleController),
                                new AttributeParameter("action",item.ModuleAction),
                                new AttributeParameter("parentID",item.ModuleParentID.ToString()),
                                new AttributeParameter("icon",item.ModuleIcon),
                                new AttributeParameter("typeID",item.ModuleTypeID.ToString()),
                            };
                        XMLHelper.AddAttribute(xDoc, xNode, null, parameter);
                        parentNode.AppendChild(xNode);

                        #endregion 生成菜单节点

                        #region 生成操作权限

                        foreach (AuthorityContract authority_Item in list_Authority)
                        {
                            //获取当前菜单下角色拥有的操作
                            string auhorityIDs = dr["AuhorityIDS"].ToString();
                            string[] arr_Auhority = auhorityIDs.Split(',');
                            if (!arr_Auhority.Contains(authority_Item.AuthorityID.ToString()) || authority_Item.AuthorityState != 0 || authority_Item.AuthorityState == 1)
                            {
                                continue;
                            }
                            XmlNode actionNode = xDoc.CreateNode(XmlNodeType.Element, "action", null);
                            AttributeParameter[] actionParameter = new AttributeParameter[]
                            {
                                new AttributeParameter("id",authority_Item.AuthorityID.ToString()),
                                new AttributeParameter("name",authority_Item.AuthorityName),
                                new AttributeParameter("tag",authority_Item.AuthorityTag)
                            };
                            XMLHelper.AddAttribute(xDoc, actionNode, null, actionParameter);
                            xNode.AppendChild(actionNode);
                        }

                        #endregion 生成操作权限

                        //调用方法
                        CreateXmlByModule(list, item.ModuleID, xNode, xDoc, ds);
                    }
                }
            }
        }
        /// <summary>
        /// 生成权限XML文件
        /// </summary>
        /// <param name="userID">用户ID</param>
        private void CreateAuthorityXML()
        {
            //文件路径
            string filePath = "/FileXML/" + (Session["user"] as UsersContract).UserName + "_xml";
            //判断XML文件是否存在 存在的话删除文件
            if (System.IO.File.Exists(Server.MapPath(filePath)))
            {
                System.IO.File.Delete(Server.MapPath(filePath));
            };
            //创建XML
            XmlDocument xmlDoc = new XmlDocument();
            XmlNode xNode = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
            xmlDoc.AppendChild(xNode);
            XmlNode rootNode = xmlDoc.CreateNode(XmlNodeType.Element, "zuxia_OA", null);
            xmlDoc.AppendChild(rootNode);
            UsersContract user = Session["user"] as UsersContract;
            //获取当前登录人员的所有拥有权限的系统
            DataSet ds = moduleTypeServices.GetModuleTyepIdByUser(user.UserID, user.RoleID);
            //获取全部的系统
            //List<ModuleTypeContract> moduleTypeList = moduleTypeServices.GetAllModuleType();
            //获取角色的全部权限
            DataSet ds_roleAuthority = roleAuthorityListServices.GetRoleAuthority((Session["user"] as UsersContract).UserID);
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                //获取当前系统下所有的菜单
                List<ModulesContract> list = modulesServices.GetModulesByTypeId(int.Parse(dr["ModuleTypeID"].ToString()));
                if (list.Count != 0)
                {
                    //创建根节点
                    XmlNode root = xmlDoc.CreateNode(XmlNodeType.Element, "moduleType", null);
                    //创建根节点描述
                    AttributeParameter[] parameter = new AttributeParameter[]
                    {
                        new AttributeParameter("id","moduleType_"+dr["ModuleTypeID"]),
                        new AttributeParameter("name",dr["ModuleTypeName"].ToString()),
                        new AttributeParameter("ename",dr["ModuletypeEName"].ToString()),
                        new AttributeParameter("icon",dr["ModuletypeImg"].ToString()),
                        new AttributeParameter("sysId",dr["ModuleTypeID"].ToString())
                    };
                    XMLHelper.AddAttribute(xmlDoc, root, null, parameter);

                    //递归
                    CreateXmlByModule(list, 0, root, xmlDoc, ds_roleAuthority);
                    //匹配用户的菜单信息
                    rootNode.AppendChild(root);
                }
            }

            xmlDoc.Save(Server.MapPath(filePath));
        }