SoFunction
Updated on 2025-03-07

c# sample program to generate site map (SiteMapPath) file


//Create a site map
        private void CreateSiteMap(DataSet ds)
        {

            XmlDeclaration declareation;
            declareation = ("1.0", "UTF-8", null);
            (declareation);

            XmlElement xeRoot = ("siteMap");
            (xeRoot);

            XmlElement xroot = ("siteMapNode");
            ("title", "");
            ("url", "#");
            (xroot);

            for (int i = 0; i <= [0]. - 1; i++)
            {
                DataRowView row = [0].DefaultView[i];

                string MainMenu = row["MainMenu"].ToString();
                string NavigateUrl = row["NavigateUrl"].ToString();
                if (MainMenu != str)
                {
                    XmlElement siteMapNode = ("siteMapNode");
                    ("title", MainMenu);
                    ("description", "");
                    ("url", NavigateUrl);
                    (siteMapNode);
                    str = AddChildNode(MainMenu);
                }
            }
            (("\\"));
        }

//Add child nodes
        private string AddChildNode(String text)
        {
            string sql = "select * from Menu Where MainMenu ='" + text + "'";
            DataSql data = new DataSql();
            ();
            DataSet ds = (sql);
            XmlNode root = ("/siteMap/siteMapNode/siteMapNode[@title='" + text + "']");
            for (int i = 0; i <= [0]. - 1; i++)
            {
                DataRowView row = [0].DefaultView[i];

                string ChildMenu = row["ChildMenu"].ToString();
                if (ChildMenu != "")
                {
                    string NavigateUrl = row["NavigateUrl"].ToString();

                    XmlElement siteMapNode = ("siteMapNode");
                    ("title", ChildMenu);
                    ("description", "");
                    ("url", NavigateUrl);
                    (siteMapNode);
                }
            }
            return text;
        }