在我的博文java ArrayList代替数组中有个XMLReader类,这是一个可以读取XML文件的java类,它的实现过程是怎样的呢?接下来让我们看看XMLReader的实现过程:
首先你要下载一个叫dom4j-1.6.1.jar包,XMLReader类会用到这个jar包。
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory name="foo"> <property name="connection.driver_class">com.MysqL.jdbc.Driver</property> <property name="connection.url">jdbc:MysqL://localhost/db?characterEncoding=gb2312</property> <property name="connection.username">root</property> <property name="connection.password">root</property> </session-factory> </hibernate-configuration>这个名为db.xml的文件就是我们要读的关于数据库连接的XML文件。<session-factory name="foo"></session-factory>为一组,里面每个property都是以键值对存储的。
接着,XMLReader类如下:
import java.io.*; import java.util.*; import org.dom4j.*; import org.dom4j.io.*; public class XMLReader { public static List<String> getdbxml() { List<String> db=new ArrayList<String>(); try { File f = new File("D:\\db.xml"); SAXReader reader = new SAXReader(); Document doc = reader.read(f); Element root = doc.getRootElement(); Element fo; Element value; int j=0; //迭代器查看有几个session-factory for (Iterator i = root.elementIterator("session-factory"); i.hasNext();) { fo = (Element) i.next();//将foo赋给fo,然后循环查看名为property的值,存到db里 for(Iterator k = fo.elementIterator("property");k.hasNext();) { value = (Element)k.next(); db.add((String)value.getData());//使用ArrayList的add方法将元素存储到容器里 j++; } } } catch (Exception e) { e.printStackTrace(); } return db; } }用到的是dom4j包下的SAXReader这个类来获取xml文件,然后的几部在上面注释了,希望对大家有所帮助。