JAVA操纵XML 实例讲解
JDBC开发中需要连接到不同的数据库,利用XML文件保存不同类型数据库的连接参数,并使用统一的程序解析XML以取得相应的连接参数。
<<Db.xml>> <?xml version="1.0" encoding="UTF-8"?> <DBS> <DB> <type>Oracle</type> <driver>oracle.jdbc.driver.OracleDriver</driver> <url>jdbc:oracle:thin:@localhost:1521:goudan</url> <user>pubuser1</user> <password>11111111</password> </DB> <DB> <type>mysql</type> <driver>org.git.mm.mysql.Driver</driver> <url>jdbc:mysql://localhost:3306/BookDB</url> <user>pubuser2</user> <password>11111111</password> </DB> <DB> <type>sqlserver</type> <driver>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver> <url>jdbc:Microsoft:sqlserver://127.0.0.1:1433</url> <user>pubuser3</user> <password>11111111</password> </DB> </DBS> <<DBTest.java>> package test.xml; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class DBTest { public DBTest(String type) { // this.type = type ; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder();// 创建解析器 Document doc = db.parse("Db.xml");// 解析地址 NodeList n1 = doc.getElementsByTagName("DB");// 得到含有DB标签的一个列表 for (int i = 0; i < n1.getLength(); i++) { Element myNode = (Element) n1.item(i);// 通过item方法获得每个对象 if (myNode.getElementsByTagName("type").item(0).getFirstChild() .getNodeValue().equals(type)) { String driver = myNode.getElementsByTagName("driver").item( 0).getFirstChild().getNodeValue(); String url = myNode.getElementsByTagName("url").item(0) .getFirstChild().getNodeValue(); String user = myNode.getElementsByTagName("user").item(0) .getFirstChild().getNodeValue(); String password = myNode.getElementsByTagName("password") .item(0).getFirstChild().getNodeValue(); System.out.println(driver + " " + url + " " + user + " " + password); break; } } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] rag) { DBTest dbt1 = new DBTest("Oracle"); DBTest dbt2 = new DBTest("mysql"); DBTest dbt3 = new DBTest("sqlserver"); } }
http://www.5itjob.com
http://www.rjpx.net