`

J2EE实现XML文件的读取与导出(源码)!

阅读更多

最近学习了XML的相关知识,深感其强大。

XML这个技术家族非常庞大。并且与其他技术密不可分。

是我们非常有必要掌握的知识,然后看了两个视频。把XML关于J2EE这方面做了系统的学习。

总结如下:

搭建环境:MyEclipse6.5

使用jar包jdom.jar

下面首先介绍XML文件读取:

首先在项目中找一个XML文件,我就以以下的XML配置文件为例。

新建一个全局配置文件:gobal-configure.xml

 

<!----><?xml version="1.0" encoding="UTF-8"?>
<!-- 配置数据库信息 -->
<sys-configure>
    
<jdbc-info>
        
<driver-class-name>com.mysql.jdbc.Driver</driver-class-name>
        
<url>jdbc:mysql://localhost:3306/sy</url>
        
<user-name>root</user-name>
        
<password>****</password>
    
</jdbc-info>
<!-- 配置DAO -->
    
<beans>
        
<bean id="com.sy.dao.ItemDao" class="com.sy.dao.impl.ItemDaoImpl"></bean>
    
</beans>
</sys-configure>

 

 下面在com.sy.util包中添加JdbcInfo.java注入类

 

 

<!---->package com.sy.util;

public class JdbcInfo {
    
    
private String driverClassName;
    
private String url;
    
private String userName;
    
private String password;
    
public String getDriverClassName() {
        
return driverClassName;
    }
    
public void setDriverClassName(String driverClassName) {
        
this.driverClassName = driverClassName;
    }
    
public String getUrl() {
        
return url;
    }
    
public void setUrl(String url) {
        
this.url = url;
    }
    
    
public String getPassword() {
        
return password;
    }
    
public void setPassword(String password) {
        
this.password = password;
    }
    
public String toString() {
        
return "JdbcInfo {driverClassName="+driverClassName+
        
",url="+url+
        
",userName="+userName+
        
",password="+password+"}";
    }
    
public String getUserName() {
        
return userName;
    }
    
public void setUserName(String userName) {
        
this.userName = userName;
    }

}

 

下面是读取类:GlobalConfigure.java

 

<!---->package com.sy.util;

import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.xpath.XPath;

import com.sy.dao.ItemDao;

public class GlobalConfigure {

    
private static GlobalConfigure instance=new GlobalConfigure();
    
    
private static final String CONFIG_FILE_NAME="gobal-configure.xml";
    
    
private Element rootElt;
    
    
private JdbcInfo jdbcInfo=new JdbcInfo();
    
    
private Map beanMap=new HashMap();
    
    
private GlobalConfigure(){
        SAXBuilder sb
=new SAXBuilder();
        
try {
            Document doc
=sb.build(Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE_NAME));
            
this.rootElt=doc.getRootElement();
            initJdbcInfo();
            initBeans();
        } 
catch (JDOMException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        } 
catch (IOException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    
private static GlobalConfigure getInstance(){
        
        
return instance;
    }
    
private void initJdbcInfo(){
        
try {
            Element driverClassNameElt
=(Element)XPath.selectSingleNode(rootElt,"//sys-configure/jdbc-info/driver-class-name");
            
//System.out.println(driverClassNameElt.getText());
            jdbcInfo.setDriverClassName(driverClassNameElt.getText());
            Element urlElt
=(Element)XPath.selectSingleNode(rootElt,"//sys-configure/jdbc-info/url");
            jdbcInfo.setUrl(urlElt.getText());
            Element userNameElt
=(Element)XPath.selectSingleNode(rootElt,"//sys-configure/jdbc-info/user-name");
            jdbcInfo.setUserName(userNameElt.getText());
            Element passwordElt
=(Element)XPath.selectSingleNode(rootElt,"//sys-configure/jdbc-info/password");
            jdbcInfo.setPassword(passwordElt.getText());
            
        } 
catch (JDOMException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
private void initBeans(){
        
try {
            List beanList
=XPath.selectNodes(rootElt, "//sys-configure/beans/bean");
            
for(Iterator iter=beanList.iterator();iter.hasNext();){
                Element beanElt
=(Element)iter.next();
                String id
=beanElt.getAttributeValue("id");
                String className
=beanElt.getAttributeValue("class");
                
//System.out.println("id="+id+",className="+className);
                Object obj=Class.forName(className).newInstance();
                beanMap.put(id, obj);
                
                
                
            }
            
            
        } 
catch (JDOMException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        } 
catch (InstantiationException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        } 
catch (IllegalAccessException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        } 
catch (ClassNotFoundException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
    
public static void main(String[] args){
        System.out.println(GlobalConfigure.getInstance().getJdbcInfo());
        ItemDao itemDao
=(ItemDao)GlobalConfigure.getInstance().getBean(ItemDao.class);
    }

    
public JdbcInfo getJdbcInfo() {
        
return jdbcInfo;
    }
    
public Object getBean(Class c){
        
return beanMap.get(c.getName());
        
    }
}

这样就可以读取了。

 

 下面是XML文件的导出的类:

<!---->package com.sy.util;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.XMLOutputter;

public class XMLWriter {
    
/**
     * <selects> 
     *         <select> 
     *             <id sid="5">1</id> 
     *             <name>河北省</name> 
     *         </select> 
     *         <select> 
     *             <id>2</id>
     *             <name>海南省</name> 
     *         </select> 
     * </selects>
     * 
@param args
     
*/
    
public static void main(String[] args) {
        Element rootElt 
= new Element("selects");
        Element selectElt 
= new Element("select");
        Element idElt 
= new Element("id");
        idElt.addContent(
"1");//设定值
        idElt.setAttribute(new Attribute("sid","5"));
        Element valueElt 
= new Element("name");
        valueElt.addContent(
"河北省");
        rootElt.addContent(selectElt);
//建立父子关系
        selectElt.addContent(idElt);
        selectElt.addContent(valueElt);
        Document doc 
=new Document(rootElt);
        XMLOutputter out 
=new XMLOutputter();
        
//out.setFormat(Format.getCompactFormat().setEncoding("GB2312"));//设置编码
        String xmlStr=out.outputString(doc);
        System.out.println(xmlStr);
        
try {
            out.output(doc, 
new FileOutputStream("D:/java/work2/jdom_xml2/WebRoot/test.xml"));//导出xml文件在项目根目录
        } catch (FileNotFoundException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        } 
catch (IOException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

 

施杨出品!!!

分享到:
评论

相关推荐

    JAVA上百实例源码以及开源项目

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    JAVA上百实例源码以及开源项目源代码

     Java实现HTTP连接与浏览,Java源码下载,输入html文件地址或网址,显示页面和HTML源文件,一步步的实现过程请下载本实例的Java源码,代码中包括丰富的注释,对学习有帮助。 Java实现的FTP连接与数据浏览程序 1个...

    java开源包5

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    asp.net知识库

    使用.ashx文件处理IHttpHandler实现发送文本及二进制数据的方法 制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标...

    java开源包8

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包3

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包4

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包1

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包11

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包2

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包6

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包10

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包7

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包9

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    java开源包101

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

    Java资源包01

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...

Global site tag (gtag.js) - Google Analytics