最近学习了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的Excel导入导出源码" 提供了一种方便的方法来处理这类问题。本知识点主要涉及以下几个方面: 1. **Apache POI库**: Apache POI 是一个流行的开源Java API,用于读写Microsoft Office格式的文件,包括Excel...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解...可以将网络图导出为 GIF, JPEG, PNG, PPM, ARP and PNML (XML based)文件格式。使用了优秀的JHotDraw 5.2 框架。 activemq...