读取并加载XML文件
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import com.alibaba.fastjson.JSON;
import com.lianpay.share.domain.SubMenu;
import com.lianpay.share.domain.SuperMenu;
public class MenusElementMode{
private InputStream stream;
private Element xmlRoot;
@SuppressWarnings("rawtypes")
private List groupWebElementList;
@SuppressWarnings({ "rawtypes", "unused" })
private List webElementList = new ArrayList();
private static MenusElementMode comInstance = null;
private MenusElementMode(String fileName) throws Exception{
SAXBuilder sb = new SAXBuilder();
stream = this.getClass().getResourceAsStream(fileName);
Document doc = sb.build(stream);
xmlRoot = doc.getRootElement();
groupWebElementList = xmlRoot.getChildren("menu");
stream.close();
}
/**
* 获取菜单实体类
* @return
* @throws Exception
*/
public static MenusElementMode getInstance(String busi_trader) throws Exception {
if (null == comInstance) {
comInstance = new MenusElementMode("ComMenuElement.xml");
}
return comInstance;
}
}
/**
* 获取菜单列表
* @return
*/
public List<SuperMenu> getMenuList() {
List<SuperMenu> superMenuList = new ArrayList<SuperMenu>();
List<SubMenu> subMenuList;
String id = "";
String name = "";
String url = "";
SuperMenu superMenu = null;
Element element = null;
SubMenu subMenu = null;
Element childElement = null;
@SuppressWarnings("rawtypes")
List childElementList = null;
for (int i = 0; i < groupWebElementList.size(); i++) {
superMenu = new SuperMenu();
subMenuList = new ArrayList<SubMenu>();
element = (Element) groupWebElementList.get(i);
id = element.getAttributeValue("id");
name = element.getAttributeValue("name");
url = element.getAttributeValue("url");
superMenu.setId(id);
superMenu.setName(name);
superMenu.setUrl(url);
childElementList = element.getChildren("item");
for (int j = 0; j < childElementList.size(); j++) {
subMenu = new SubMenu();
childElement = (Element) childElementList.get(j);
id = childElement.getAttributeValue("id");
name = childElement.getAttributeValue("name");
url = childElement.getAttributeValue("url");
subMenu.setId(id);
subMenu.setName(name);
subMenu.setUrl(url);
subMenuList.add(subMenu);
}
superMenu.setSubMenuList(subMenuList);
superMenuList.add(superMenu);
}
return superMenuList;
}
/**
* @return Returns the stream.
*/
public InputStream getStream() {
return stream;
}
/**
* @param stream
* The stream to set.
*/
public void setStream(InputStream stream) {
this.stream = stream;
}
/**
* @return Returns the xmlRoot.
*/
public Element getXmlRoot() {
return xmlRoot;
}
/**
* @param xmlRoot
* The xmlRoot to set.
*/
public void setXmlRoot(Element xmlRoot) {
this.xmlRoot = xmlRoot;
}
public static void main(String[] args) throws JDOMException, IOException {
List<SuperMenu> superMenuList;
try {
superMenuList = MenusElementMode.getInstance("1001").getMenuList();
System.out.print(JSON.toJSONString(superMenuList));
} catch (Exception e) {
e.printStackTrace();
}
}
}
XML格式
<?xml version="1.0" encoding="UTF-8"?>
<menus>
<menu id="1" name="我的首页" url="">
<item id="1" name="首页" url="/index.htm"></item>
<item id="2" name="个人信息" url="/traderOperQuery.htm"></item>
<item id="3" name="商户信息" url="/traderInfoQuery.htm"></item>
</menu>
</menus>
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
《Java与XML》(第三版)的内容涵盖了所有主要的Java XML处理库程序,全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定...
010101_WEB开发简介 010201_HTML简介 010202_JavaScript简介 010203_事件处理 010204_window对象 010301_认识XML 010302_XML解析 —— DOM 010303_XML解析 —— SAX 010304_XML解析 —— JDOM 010305_XML解析 —— ...
Java通用范例开发金典-- 源码。xml文件的处理,各种函数操作,源代码,可直接运行。
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
《Java与XML》(第三版)的内容涵盖了所有主要的Java XML处理库程序,全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
JAVA开发人员必备是HTML格式的 JavaTM 2 Platform Standard Edition 6 API 规范 本文档是 Java 2 Platform Standard Edition 6.0 的 API 规范。 请参见: 描述 Java 2 Platform 软件包 java.applet 提供创建 ...
169个实例,内容涉及Java的语言基础、面向对象程序设计、数字处理、数组与集合、字符串、异常处理、文件操作、多线程、Swing编程、图形和多媒体编程、反射机制、网络程序设计、数据库编程、Applet、Java与XML、Java ...
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
本项目推出的目的是丰富java工具集,另外就是提供给java研究组织的会员一个锻炼的机会。 希望有兴趣提高自己的java应用程序编程的java研究组织的朋友...XML处理 更好的swing界面 日志 参数选择API 串行化 国际化
本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。. 本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...
《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...
《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...
《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...
第四部分(XML高阶),内容包括:XML在数据库中的应用,XML中的矢量图形处理技术,WML——无线接入的XML,XML与Java;第五部分(基于XML的Web站点应用与开发),内容包括:WIDL自动控制Web站点,频道定义格式推送...
标准都有各自的处理方法,可以实现各种特定的功能。(2) J ava 技术。开发人员利用J 2EE APIs 来创建事务和 表现逻辑,访问XML 文档,以及对XML 文档进行操作。J ava 技术允许开发者利用现有的已经成熟的底层框架, 在其...
《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...
第7~12章是提高篇,讲解了搭建Java Web开发环境,HTML,和XML,JSP指令和内置对象,标签和动作指令,Servlet详解,JavaBean组件技术等内容;第13~15章是数据库篇,讲解了数据库技术,使用JDBC连接数据库,数据库...
169个实例,内容涉及Java的语言基础、面向对象程序设计、数字处理、数组与集合、字符串、异常处理、文件操作、多线程、Swing编程、图形和多媒体编程、反射机制、网络程序设计、数据库编程、Applet、Java与XML、Java ...