XmlDocument读节点好像要知道他XML格式...
---------------
对,如果有未知节点,就用XmlReader读取xml文件,一直向前读。

解决方案 »

  1.   


        private void loadMenu()
        {        XmlDocument xml = new XmlDocument();
            xml.Load(Server.MapPath("xmlData/Menu.xml"));
            XmlElement root = xml.DocumentElement;
            XmlNodeList menu = root.SelectNodes("//Catalog");
            if (menu.Count == 0)
            {
                Response.Write("无法加载菜单");
                return;
            }        StringBuilder sb = new StringBuilder();
            sb.Append("<ul id=\"MenuList\">\n");
            for (int i = 0; i < menu.Count; i++)
            {
                string eachstr = "<li class=\"citem\">\n\t<p onclick=\"expendMenu(" + i.ToString() + ")\"><span>";
                eachstr += menu[i].SelectSingleNode("Title").InnerText + "</span></p>\n";            XmlNode links = menu[i].SelectSingleNode("links");            eachstr += "<ul class=\"SubLinks\" id=\"SubLink_" + i.ToString() + "\">\n";            XmlNodeList a = links.SelectNodes("link");
                int k = 0;
                for (int j = 0; j < a.Count; j++)
                {
                    string target = "mainFrame";
                    if (a[j].Attributes["target"] != null)
                    {
                        target = a[j].Attributes["target"].InnerText;
                    }
                    eachstr += ("\t\t<li>");
                    eachstr += ("<a href=\"" + a[j].Attributes["href"].InnerText + "\" target=\"" + target + "\">" + a[j].InnerText + "</a>");
                    eachstr += ("</li>\n");
                    k++;
                }            eachstr += ("\t</ul>\n");            eachstr += ("</li>\n");            if (k > 0)
                {
                    sb.Append(eachstr);
                }
            }
            sb.Append("</ul>\n");
            Literal lit = new Literal();
            lit.Text = sb.ToString();
            this.PnMenu.Controls.Add(lit);    }
      

  2.   

    Menu.XML
    <?xml version="1.0" encoding="utf-8" ?>
    <Menu>
      <Catalog>
        <Title>管理员管理</Title>
        <links>
          <link href="ManagerList.aspx" role="1024">管理员列表</link>
          <link href="ManagerList.aspx" role="1024">角色管理</link>
          <link href="ManagerList.aspx" role="1024">数据备份</link>
          <link href="ManagerList.aspx" role="1024">系统日志</link>
        </links>
      </Catalog>  <Catalog>
        <Title>网站内容管理</Title>
        <links>
          <link href="News/list.aspx" role="64">资讯列表</link>
          <link href="Project/List.aspx" role="64">建设方案列表</link>
        </links>
      </Catalog>  <Catalog>
        <Title>会员管理</Title>
        <links>
          <link href="WebUser/Default.aspx" role="64">会员列表</link>
          <link href="Member/order.aspx" role="64">订单管理</link>
        </links>
      </Catalog>  <Catalog>
        <Title>广告管理</Title>
        <links>
          <link href="Web_ad/FLinkList.aspx" role="64">友情链接</link>
          <link href="Web_ad/list.aspx" role="64">广告管理</link>
        </links>
      </Catalog>  <Catalog>
        <Title>其它</Title>
        <links>
          <link href="other/vode.aspx" role="64">投票管理</link>
          <link href="other/vode.aspx" role="64">在线调查</link>
        </links>
      </Catalog>  <Catalog>
        <Title>常规操作</Title>
        <links>
          <link href="ChangePW.aspx" role="0">修改密码</link>
          <link href="Login.aspx?Action=Logout" role="0" target="_top">退出登陆</link>
        </links>
      </Catalog></Menu>