`
xiaoaoxiaozi
  • 浏览: 5197 次
  • 性别: Icon_minigender_1
文章分类
社区版块
存档分类
最新评论

JAVA开发_XML处理

 
阅读更多

读取并加载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 and XML, 3rd Edition

    《Java与XML》(第三版)的内容涵盖了所有主要的Java XML处理库程序,全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定...

    Java Web 开发实战经典(基础篇)

    010101_WEB开发简介 010201_HTML简介 010202_JavaScript简介 010203_事件处理 010204_window对象 010301_认识XML 010302_XML解析 —— DOM 010303_XML解析 —— SAX 010304_XML解析 —— JDOM 010305_XML解析 —— ...

    java-xml.zip_xml;源代码;

    Java通用范例开发金典-- 源码。xml文件的处理,各种函数操作,源代码,可直接运行。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA与XML.rar

    《Java与XML》(第三版)的内容涵盖了所有主要的Java XML处理库程序,全面讲解了SAX、DOM、StAX、JDOM以及dom4j的应用程序编程接口,同时还囊括了最新版本的用于XML处理的Java应用程序编程接口(JAXP)和用于XML绑定...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    JAVA_API1.6文档(中文)

    JAVA开发人员必备是HTML格式的 JavaTM 2 Platform Standard Edition 6 API 规范 本文档是 Java 2 Platform Standard Edition 6.0 的 API 规范。 请参见: 描述 Java 2 Platform 软件包 java.applet 提供创建 ...

    java+JDK+examples.rar_Swing Examples_java Applet_java file handl

    169个实例,内容涉及Java的语言基础、面向对象程序设计、数字处理、数组与集合、字符串、异常处理、文件操作、多线程、Swing编程、图形和多媒体编程、反射机制、网络程序设计、数据库编程、Applet、Java与XML、Java ...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    Winzip Java版.rar_Java_Win.r_Java_Win.rar_winzip_zip_参数工具 java

    本项目推出的目的是丰富java工具集,另外就是提供给java研究组织的会员一个锻炼的机会。 希望有兴趣提高自己的java应用程序编程的java研究组织的朋友...XML处理 更好的swing界面 日志 参数选择API 串行化 国际化

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书共分4部分,从xml、servlet、jsp和应用的角度向读者展示了java web开发中各种技术的应用,循序渐进地引导读者快速掌握java web开发。.  本书内容全面,涵盖了从事java web开发所应掌握的所有知识。在知识的讲解...

    Java开发实战1200例第1卷.pdf.part4

    《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...

    Java开发实战1200例第1卷.pdf.part1

    《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...

    Java开发实战1200例第1卷.pdf.part5

    《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...

    用XML轻松开发WEB站点

    第四部分(XML高阶),内容包括:XML在数据库中的应用,XML中的矢量图形处理技术,WML——无线接入的XML,XML与Java;第五部分(基于XML的Web站点应用与开发),内容包括:WIDL自动控制Web站点,频道定义格式推送...

    利用Java技术实现基于XML的Web服务

    标准都有各自的处理方法,可以实现各种特定的功能。(2) J ava 技术。开发人员利用J 2EE APIs 来创建事务和 表现逻辑,访问XML 文档,以及对XML 文档进行操作。J ava 技术允许开发者利用现有的已经成熟的底层框架, 在其...

    Java开发实战1200例第1卷.pdf.part2

    《Java开发实战1200例》以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行程序开发的多方面的知识和技巧,主要包括Java的图形图像、动画游戏、网络应用技术、Applet应用、XML、...

    Java_Web编程新手自学手册.pdf

    第7~12章是提高篇,讲解了搭建Java Web开发环境,HTML,和XML,JSP指令和内置对象,标签和动作指令,Servlet详解,JavaBean组件技术等内容;第13~15章是数据库篇,讲解了数据库技术,使用JDBC连接数据库,数据库...

    java JDK 实例开发宝典

    169个实例,内容涉及Java的语言基础、面向对象程序设计、数字处理、数组与集合、字符串、异常处理、文件操作、多线程、Swing编程、图形和多媒体编程、反射机制、网络程序设计、数据库编程、Applet、Java与XML、Java ...

Global site tag (gtag.js) - Google Analytics