`

xml菜单_XmlUtil_2

阅读更多
/**
	 * 读取菜单
	 * @param paramNode
	 * @param menu
	 */
	private void readChildNode(Node paramNode, MenuBean menu)
	{
		//如果该节点有子点节,则继续迭代读取子节点
		if(paramNode.hasChildNodes())
		{
			//如果该父节点有属性且不是主菜单,则是二级菜单
			if(paramNode.hasAttributes() && !paramNode.getNodeName().equals("MainMenu"))
			{
				//新建一个二级菜单
				MenuBean item = new MenuBean();
				//设置菜单属性
				setMenuParam(paramNode.getAttributes(), item);
				//加入主菜单
				menu.getItemMenu().add(item);
				//将要传给子菜单的主菜单设置为本二级菜单
				menu = item;
			}
			
			//迭代找出子菜单
			NodeList childNode = paramNode.getChildNodes();
			for(int i = 0; i < childNode.getLength(); i++)
			{
				readChildNode(childNode.item(i), menu);
			}
		}
		else
		{
			//如果该节点没有子节点,且有属性,则新建一个子菜单存入父菜单
			MenuBean item = new MenuBean();
			NamedNodeMap nodeMap = paramNode.getAttributes();
			
			//如果属性为空,则返回
			if(nodeMap == null)return;
			
			//设置菜单属性
			setMenuParam(nodeMap, item);
			
			menu.getItemMenu().add(item);
		}
	}
	
	/**
	 * 设置菜单属性
	 * @param nodeMap	节点属性
	 * @param item		菜单
	 */
	private void setMenuParam(NamedNodeMap nodeMap, MenuBean item)
	{
		//迭代所有属性
		for(int i = 0; i < nodeMap.getLength(); i++)
		{
			Node itemNode = nodeMap.item(i);
			String name = itemNode.getNodeName();
			String value = itemNode.getNodeValue();
			//设置属性到菜单bean
			try
			{
				Field field = item.getClass().getDeclaredField(name);
				field.setAccessible(true);
				field.set(item, value);
			}
			catch (Exception e)
			{
				e.printStackTrace();
			}
		}
	}
	
	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException
	{
		XmlUtil xml = new XmlUtil("menu.xml");
		List<MenuBean> mainMenu = xml.getMenu();
	}
分享到:
评论

相关推荐

    Java操作XML工具类XmlUtil详解

    Java操作XML工具类XmlUtil详解 Java操作XML工具类XmlUtil是Java中一个非常重要的工具类,它提供了许多实用的方法来操作XML文件。在本文中,我们将详细介绍XmlUtil的使用方法和实现原理,希望能够为大家提供有价值的...

    xmlutil XMl工具类

    xml2bean

    XMLUtil java XML orm toolkit

    2. **XML到对象的反序列化**:同样,XMLUtil也能解析XML字符串并将其转换为对应的Java对象实例。这使得开发者可以从XML文件中加载配置信息或数据,无需手动解析XML文档。 3. **映射配置**:XMLUtil允许开发者定义...

    xml转javaBean,javaBean转xml,xml标签大小写问题,以及对xml特殊符号的处理

    2. JavaBean转XML: JavaBean转XML的过程与XML转JavaBean相反。首先,创建一个JAXBContext对象,然后获取Marshaller实例。通过调用Marshaller的marshal()方法,我们可以将JavaBean对象转换为XML字符串或者写入XML...

    XPathUtil,根据Xpath解析xml文件

    根据xmlPath路径,找到对应的xml文件,进行解析!之前找了好多感觉和自己的需求不太一样,这个可以根据Xpath解析出来xml里所有的信息,十分好用 举个例子 xmlPath = "E://upload/xml/1580242.163.xml"; XPathUtil util ...

    java 解析xml 多级

    2. 创建解析器工厂: 使用`DocumentBuilderFactory`创建一个解析器工厂实例,然后通过`newDocumentBuilder()`方法获取DOM解析器。 ```java DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance...

    ibatis UPDATE 动态XML与insert

    至于压缩包中的"Ibaitis_Oracle10_XmlUtil.java"文件,虽然没有具体的内容,但我们可以推测这可能是一个与Oracle数据库配合使用的MyBatis工具类,用于处理XML相关的操作,比如动态生成XML配置文件或者解析XML数据。...

    unity xml解析工具

    2. 加载XML文件:使用`XDocument.Load()`方法从磁盘加载XML文件,例如`var doc = XDocument.Load("path_to_xml_file.xml");` 3. 查询XML数据:`XDocument`提供了丰富的查询API,如`Descendants()`、`Elements()`和`...

    desktop and xmlutil

    2. **XML(Extensible Markup Language)**: - XML是一种标记语言,用于存储和传输结构化数据。它以易于人类阅读和机器解析的方式描述数据。 - XML的结构化特性使得它在Web服务、配置文件、数据交换等方面广泛...

    xml-parser-class.zip_xml parser

    在提供的压缩包"xml-parser-class.zip"中,包含了一些C++实现的XML解析器相关文件,如BTXmlParser.cpp、XMLFileEx.cpp、XmlUtil.cpp,以及对应的头文件BTXmlParser.h、XMLFileEx.h和xmlutil.h。这些文件很可能是为了...

    XmlUtil.zip_Java编程_Java_

    XMLStreamReader reader = factory.createXMLStreamReader(new FileInputStream("path_to_xml_file.xml")); while (reader.hasNext()) { int event = reader.next(); switch (event) { case XMLStreamConstants....

    xml转对象封装的简单与复杂xml的转化写法

    2. **XML到对象的转换**:在Java中,可以通过JAXB(Java Architecture for XML Binding)或者自定义解析方法实现XML到对象的转换。JAXB是Java标准,能够自动将XML映射到Java类,反之亦然。而使用JDOM则需要手动编写...

    Groovy 动态修改XML

    2. **访问XML节点**:Groovy的XML支持使得可以通过一种直观的方式访问和操作节点。例如,你可以直接通过节点名来访问它们: ```groovy def node = xml.node println node.text() // 输出 "text" ``` 3. **修改...

    读写xml文件

    `XmlUtil.h`可能包含了一些XML处理的辅助函数,比如检查XML格式的合法性、格式化XML字符串等。`XmlNotify.h`则可能是定义了在处理XML过程中的一些通知事件,比如解析错误或节点变化。 在实际应用中,VC++开发者通常...

    对象转换xml

    2. **对象到XML转换**: 要将对象转换为XML,首先需要创建一个对象实例,然后使用XmlSerializer的Serialize方法将其转换为XML字符串或写入XML文件。例如,我们创建一个Person对象实例并序列化为XML: ```csharp ...

    JS操作XML工具类XmlUtils

    XmlUtils JS操作XML工具类 **  * 加载xml文件,参数:  * @param {string} xmlPath:加载的xml文件路径; * @return {Object} true 正常加载; false 加载失败 *

    XMLUtil.java

    节点创建;Map(带List节点)转换为xml; xml文档转换为String;xml字符串转换为Map

    XMLUtil.class

    Flex网上书店 运行时 的 XMLUtil.class

    ruby,xml

    def parse_xml(file_path) xml_data = File.read(file_path) doc = Nokogiri::XML(xml_data) # 使用XPath查找特定元素 root_element = doc.xpath('//root') # 使用CSS选择器 specific_node = doc.css('node...

Global site tag (gtag.js) - Google Analytics