cxi生成サイト地図(SiteMapPath)ファイルの例プログラム



//
        private void CreateSiteMap(DataSet ds)
        {

            XmlDeclaration declareation;
            declareation = xmlDoc.CreateXmlDeclaration("1.0", "UTF-8", null);
            xmlDoc.AppendChild(declareation);

            XmlElement xeRoot = xmlDoc.CreateElement("siteMap");
            xmlDoc.AppendChild(xeRoot);

            XmlElement xroot = xmlDoc.CreateElement("siteMapNode");
            xroot.SetAttribute("title", "");
            xroot.SetAttribute("url", "#");
            xeRoot.AppendChild(xroot);

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

                string MainMenu = row["MainMenu"].ToString();
                string NavigateUrl = row["NavigateUrl"].ToString();
                if (MainMenu != str)
                {
                    XmlElement siteMapNode = xmlDoc.CreateElement("siteMapNode");
                    siteMapNode.SetAttribute("title", MainMenu);
                    siteMapNode.SetAttribute("description", "");
                    siteMapNode.SetAttribute("url", NavigateUrl);
                    xroot.AppendChild(siteMapNode);
                    str = AddChildNode(MainMenu);
                }
            }
            xmlDoc.Save(Server.MapPath("\\Web.sitemap"));
        }

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

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

                    XmlElement siteMapNode = xmlDoc.CreateElement("siteMapNode");
                    siteMapNode.SetAttribute("title", ChildMenu);
                    siteMapNode.SetAttribute("description", "");
                    siteMapNode.SetAttribute("url", NavigateUrl);
                    root.AppendChild(siteMapNode);
                }
            }
            return text;
        }