c# winform读取xml文件创建菜单的代码

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WinformMenu.Helper;
using System.Xml;

namespace WinformMenu
{
    public partial class FrmAddMenu : Form
    {
        public FrmAddMenu()
        {

InitializeComponent();

}

private void FrmAddMenu_Load(object sender, EventArgs e)
        {
            MenuStrip menuS = new MenuStrip();
            menuS.Parent = this;
            string xmlFileName = @"F:\c#工程\WinformMenu\WinformMenu\XML\菜单.xml";
            createMenu(xmlFileName, menuS);
        }

public void createMenu(string xmlFileName, MenuStrip menuS)
        {  
            //1:根据XmlElement创建菜单
            //XmlNode node = xmlHelper.GetXmlNode(xmlFileName, "//MangeTvMenu");
            //foreach (XmlNode xml in node.ChildNodes)
            //{
            //    ToolStripMenuItem mainMenu=new ToolStripMenuItem();
            //    mainMenu.Text = xml.Attributes["descript"].Value;
            //    menuS.Items.Add(mainMenu);
            //    if (xml.HasChildNodes)
            //    {
            //        CreateSubMenuByNode(xml, mainMenu);
            //    }
            //}
            //2:根据XmlNode创建菜单
            XmlElement xml = xmlHelper.GetXmlElement(xmlFileName);
            foreach (XmlElement xel in xml.ChildNodes)
            {
                ToolStripMenuItem mainMenu = new ToolStripMenuItem();
                mainMenu.Text = xel.Attributes["descript"].Value;
                menuS.Items.Add(mainMenu);
                if (xml.HasChildNodes)
                {   
                    CreateSubMenuByElement(xel, mainMenu);
                }
            }

}

/// <summary>
        /// 根据node节点递归创建菜单
        /// </summary>
        /// <param name="xNode"></param>
        /// <param name="menuItem"></param>
        public void CreateSubMenuByNode(XmlNode xNode, ToolStripMenuItem menuItem)
        {
            foreach (XmlNode xml in xNode.ChildNodes)
            {
                ToolStripMenuItem subMenu = new ToolStripMenuItem();
                if (xml.ChildNodes.Count > 1)
                {
                    subMenu.Text = xml.Attributes["descript"].Value;
                    menuItem.DropDown.Items.Add(subMenu);
                    CreateSubMenuByNode(xml, subMenu);
                }
                else
                {
                    subMenu.Text = xml.InnerText;
                    menuItem.DropDown.Items.Add(subMenu);
                }
            }
        }

/// <summary>
        /// 根据元素节点递归创建菜单
        /// </summary>
        /// <param name="xml"></param>
        /// <param name="menuItem"></param>
        public void CreateSubMenuByElement(XmlElement xml, ToolStripMenuItem menuItem)
        {
            foreach (XmlElement xel in xml.ChildNodes)
            {
                ToolStripMenuItem subMenu = new ToolStripMenuItem();
                if (xel.ChildNodes.Count>1)
                {
                    subMenu.Text = xel.Attributes["descript"].Value;
                    menuItem.DropDown.Items.Add(subMenu);
                    CreateSubMenuByElement(xel, subMenu);
                }
                else
                {
                    subMenu.Text = xel.InnerText;
                    menuItem.DropDown.Items.Add(subMenu);
                }
            }
        }
 ///////////////////////////////////////////////////
    }
}

xml文件格式如下:


代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<MangeTvMenu descript="管理">
  <Add descript="添加">
    <Employee>员工</Employee>
    <Deptment>部门</Deptment>
  </Add>
  <EmployeeInfo descript="员工信息">
    <BaseInfo>个人基本信息</BaseInfo>
    <StudyInfo>学历信息</StudyInfo>
    <MarryInfo>婚姻信息</MarryInfo>
  </EmployeeInfo>
  <DeptmentInfo descript="部门信息">
    <dept1>部门1</dept1>
    <dept2>部门2</dept2>
  </DeptmentInfo>
  <MoneyManage descript="工资管理">
    <BaseMoney>基本工资</BaseMoney>
    <OtherMoney>绩效工资</OtherMoney>
  </MoneyManage>
  <Apply descript="申请">
    <AddWork>加班</AddWork>
    <ApplyWeek>请假</ApplyWeek>
    <AddMoney>加薪</AddMoney>
    <Another>其他</Another>
  </Apply>
</MangeTvMenu>

(0)

相关推荐

  • c#通过xpath读取xml示例

    需要修改Main方法第一行代码的路径为你的books.xml文件绝对路径或相对路径.代码演示了XPath各种语法的使用情况 books.xml 复制代码 代码如下: <?xml version="1.0" encoding="ISO-8859-1"?><bookstore> <book category="COOKING">    <title lang="en">Everyda

  • 在C#中创建和读取XML文件的实现方法

    1.创建简单的XML文件为了便于测试,我们首先创建控制台应用程序,项目命名为CreateXml,Program.cs代码如下: 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Xml; namespace CreateXml{    class Program    {        static void Main(string[]

  • 简介C#读取XML的两种方式

    XML作用 对于XML,想必各位都比较了解,我也就不用费笔墨来描述它是什么了,我想在未来的Web开发中XML一定会大放异彩,XML是可扩展标记语言,使用它企业可以制定一套自己的数据格式.用于Internet的数据传输,我想,这是XML对于我们这些程序员最诱人的地方! 我们今天的主题不是论述XML的好处,而是讨论在C#中如何使用XML.下面我们来了解一下使用程序访问XML的一些基础理论知识. 访问的两种模型: 在程序中访问进而操作XML文件一般有两种模型,分别是使用DOM(文档对象模型)和流模型,

  • C#读取XML中元素和属性值的实现代码

    1.school.xml,如下: 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?><!--启明培训学校学生信息:    1.一年级学生    2.二年级学生    -->  <school name="启明培训学校">    <grades>     <grade id="1" name="一年级">

  • c#读取xml文件到datagridview实例

    复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO;using System.Xml;using System.Xml.Linq; namespa

  • 基于C#中XmlReader读取Xml的深入分析

    XmlDocument和XElement在读取Xml时要将整个Xml文档放到内存中去操作,这样做操作简单,但是很费内存,而在有些场景下我们必须考虑尽可能节省内存.这时候就该XmlReader和XmlWriter出场了.XmlReader读取Xml需要通过Read()实例方法,不断读取Xml文档中的声明,节点开始,节点内容,节点结束,以及空白等等,直到文档结束,Read()方法返回false.如下读取Xml内容实例代码和注释说明 复制代码 代码如下: using System; using Sys

  • C# Linq读取XML文件的实例

    1.示例XML文件:Demo.xml 复制代码 代码如下: <?xml version="1.0" encoding="utf-8" ?><note>  <conf>    <to>infozero</to>    <from>lerroy</from>    <heading>测试信息</heading>    <body>第一条测试信息<

  • c#读取XML多级子节点

    话不多说,请看代码: string xmlFilePath = "D:\\log_xml\\MarInfo.xml"; //Server.MapPath(@"相对路径如/xml/test.xml"); XmlDocument doc = new XmlDocument(); doc.Load(xmlFilePath);//加载XML文件 string rst = ""; //使用xpath表达式选择文档中所有的student子节点 XmlNode

  • C#读取xml节点数据方法小结

    本文实例总结了C#读取xml节点数据的方法.分享给大家供大家参考.具体如下: 第一种: 使用XPath XML的路径我配置在web.config 的appSettings节点下 <appSettings> <add key="orgCodePath" value="../../template/home/orgCode.xml"/> </appSettings> XML结构如下: <?xml version="1.

  • c# winform读取xml文件创建菜单的代码

    复制代码 代码如下: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using WinformMenu.Helper;using System.Xml; namespace WinformMen

  • php中使用DOM类读取XML文件的实现代码

    主要功能:php中使用DOM类读取XML文件 设计知识点: 1.XML节点循环读取 2.用iconv()函数实现编码转换,防止中文乱码 holiday.xml文件如下 复制代码 代码如下: <?xml version="1.0" encoding="UTF-8"?> <daysOff-overTime> <year> <yearName>2012</yearName> <holiday> <

  • JavaScript 解析读取XML文档 实例代码

    JavaScript解析读取XML文件,主要就是加载并解析XML文件,然后就可以测试解析的XML文件的内容,打印输出来. 在线演示:http://demo.jb51.net/js/2012/readxml/注:测试的时候需要在网站中测试,iis或apache中,注意不要本地双击运行测试index.htm 复制代码 代码如下: <html> <head> <title>我们</title> <script type="text/javascri

  • JS实现读取xml内容并输出到div中的方法示例

    本文实例讲述了JS实现读取xml内容并输出到div中的方法.分享给大家供大家参考,具体如下: note.xml文件结构: <nooo> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note> <n

  • c#使用Dataset读取XML文件动态生成菜单的方法

    本文实例讲述了c#使用Dataset读取XML文件动态生成菜单的方法.分享给大家供大家参考.具体实现方法如下: Step 1:Form1 上添加一个ToolStripContainer控件 Step2:实现代码 private void Form2_Load(object sender, EventArgs e) { CMenuEx menu = new CMenuEx(); string sPath = "D://Menu.xml";//xml的内容 if (menu.FileExi

  • C#递归读取XML菜单数据的方法

    本文实例讲述了C#递归读取XML菜单数据的方法.分享给大家供大家参考.具体分析如下: 最近在研究一些关于C#的一些技术,纵观之前的开发项目的经验,做系统时显示系统菜单的功能总是喜欢把数据写在数据库表,然后直接读取加载到菜单树上显示. 现在想把菜单数据都放在XML里,然后递归读取XML. 由于项目使用WCF,实体类使用了两个,一个是业务逻辑层中的实体,一个是调用业务逻辑层递归方法后进行数据实体的转换,XML读取方法写在业务逻辑层中. 思路: 1.先读取XML里所有的菜单 2.根据用户的权限显示所属

  • 详解c#读取XML的实例代码

    XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影.Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具.XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用.微软也提供了一系列类库来倒帮助我们在应用程序中存储XML文件. "在程序中访问

  • java DOM4J 读取XML实例代码

    下面展示一篇我自己写的一个XML读取测试 复制代码 代码如下: import java.util.Iterator;import java.io.BufferedReader;import java.io.File;import java.io.IOException;import java.io.InputStreamReader;import java.net.MalformedURLException;import org.dom4j.*;import org.dom4j.io.SAXRe

  • PHP读取XML值的代码(推荐)

    用Php读取XML最简单的情况: XML文件(cy.xml)如下: 复制代码 代码如下: <?xml version="1.0″ encoding="gb2312″?> <xml> <list>1</list> <list>2</list> <list>3</list> </xml> Php文件(cy.php)如下: 复制代码 代码如下: <?php $xml = new

  • 用PHP读取和编写XML DOM的实现代码

    用 PHP 读取和编写可扩展标记语言(XML)看起来可能有点恐怖.实际上,XML 和它的所有相关技术可能是恐怖的,但是用 PHP 读取和编写 XML 不一定是项恐怖的任务.首先,需要学习一点关于 XML 的知识 -- 它是什么,用它做什么.然后,需要学习如何用 PHP 读取和编写 XML,而有许多种方式可以做这件事. 本文提供了 XML 的简短入门,然后解释如何用 PHP 读取和编写 XML. 什么是 XML? XML 是一种数据存储格式.它没有定义保存什么数据,也没有定义数据的格式.XML 只

随机推荐