java 如何读取xml

2021-06-24 20:32:29 0点赞 0收藏 0评论

1.DB.java

package com.bn.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Iterator;
import java.util.Properties;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class DB {
private static String dbServer;
private static String dbName;
private static String dbUser;
private static String dbPwd;
//java 页游项目 fhadmin.org
public void readXML(){


SAXReader sr = new SAXReader();//获取读取xml的对象。Document doc = null;
String path1 = String.valueOf(Thread.currentThread().getContextClassLoader().getResource("")); //System.out.println(path1);
path1 = path1 + "../DB.xml"; //System.out.println(path1);

try {

doc = sr.read(path1);

} catch (DocumentException e) {

// TODO Auto-generated catch block
e.printStackTrace();

}//得到xml所在位置。然后开始读取。并将数据放入doc中

Element el_root = doc.getRootElement();//向外取数据,获取xml的根节点。
Iterator it = el_root.elementIterator();//从根节点下依次遍历,获取根节点下所有子节点 while(it.hasNext()){//遍历该子节点

Object o = it.next();//再获取该子节点下的子节点
Element el_row = (Element)o;
String s = el_row.getText();
Iterator it_row = el_row.elementIterator();
int i =1; while(it_row.hasNext()){//遍历节点
Element el_ename = (Element)it_row.next();//获取该节点下的所有页游数据。 if(i == 1){
this.setDbServer(el_ename.getText()); //System.out.println(this.getDbServer()); //dbServer = el_ename.getText();
} if(i == 2){
this.setDbName(el_ename.getText()); // System.out.println(this.getDbName()); //dbName = el_ename.getText();
} if(i == 3){
this.setDbUser(el_ename.getText()); // System.out.println(this.getDbUser()); //dbUser = el_ename.getText();
} if(i == 4){
this.setDbPwd(el_ename.getText()); // System.out.println(this.getDbPwd()); //dbPwd = el_ename.getText();
} // System.out.println(i);
i++; //System.out.println(el_ename.getText());
} //System.out.println(o);
}

}

static {
DB dbxml = new DB();
dbxml.readXML();

java 如何读取xml

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}
}
public static Connection createConn(){
DB dbxml = new DB();
//String name = dbxml.dbName;
//System.out.www.pizei.comprintln(name);
//System.out.println(dbxml.getDbServer() + dbxml.getDbName() + dbxml.getDbUser() + dbxml.getDbPwd());
Connection conn = null;
try {

conn = DriverManager.getConnection("jdbc:mysql://"+ dbxml.getDbServer() +":3306/"+ dbxml.getDbName() +"?user="+ dbxml.getDbUser() +"&password="+ dbxml.getDbPwd());//conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bnss?user=root&password=root");

} catch (SQLException e) {

e.printStackTrace();

}
return conn;
}
public static PreparedStatement createPstmt(Connection conn, String sql){
PreparedStatement pstmt = null;
try {

pstmt = conn.prepareStatement(sql);

} catch (SQLException e) {

e.printStackTrace();

}
return pstmt;
}
public static void close(Connection conn){
if(conn == null)return;
try {

conn.close();conn = null;

} catch (SQLException e) {

e.printStackTrace();

}
}
public static void close(Statement stmt){
try {

stmt.close();stmt = null;

} catch (SQLException e) {

e.printStackTrace();

}
}
public static void close(ResultSet rs){
try {

rs.close();rs = null;

} catch (SQLException e) {

e.printStackTrace();

}
}
public String getDbName() {
return dbName;
}
public void setDbName(String dbName) {
this.dbName = dbName;
}
public String getDbServer() {
return dbServer;
}
public String getDbUser() {
return dbUser;
}
public String getDbPwd() {
return dbPwd;
}
public void setDbServer(String dbServer) {
this.dbServer = dbServer;
}
public void setDbUser(String dbUser) {
this.dbUser = dbUser;
}
public void setDbPwd(String dbPwd) {
this.dbPwd = dbPwd;
}
}
2.ParseXML.java

package com.bn.util;
import java.util.Properties;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
import java.net.URL;

//java项目fhadmin.org
public class ParseXML{

//定义一个Properties 用来存放 dbhost dbuser dbpassword的值private Properties props; //这里的props
public Properties getProps() {
return this.props;
}
public void parse(String filename) { //将我们的解析器对象化
ConfigParser handler = new ConfigParser(); //获取SAX工厂对象
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false); //获取SAX解析
SAXParser parser=null; try {
parser = factory.newSAXParser();
} catch (Exception e1) {
e1.printStackTrace();
}
URL confURL = null; //得到配置文件myenv.xml所在目录. tomcat中是在WEB-INF/classes
//下例中BeansConstants是用来存放xml文件中配置信息的类,可以自己代替或定义
try{
confURL = ParseXML.class.getClassLoader().getResource(filename);

//只需要将我们所需要的XML文件名字输入进去就可以了!

}catch(Exception e){ System.out.print(e.toString());
}
try
{ //将解析器和解析对象myenv.xml联系起来,开始解析 parser.parse(confURL.toString(), handler);
//获取解析成功后的属性 以后 我们其他应用程序只要调用本程序的props就可以提取出属性名称和值了
props = handler.getProps();
}catch(Exception e){ System.out.println(e.toString());
}finally{
factory=null;
parser=null; handler=null;
}
}

}
3.ConfigParser.java

package com.bn.util;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.SAXException;
import java.util.Properties;
//使用DefaultHandler的好处 是 不必陈列出所有方法,
//java项目fhadmin.org
public class ConfigParser extends DefaultHandler {

////定义一个Properties 用来存放 dbhost dbuser dbpassword的值private Properties props; private String currentSet; private String currentName; private StringBuffer currentValue = new StringBuffer(); //构建器初始化props
public ConfigParser() { this.props = new Properties();
} public Properties getProps() { return this.props;
} //定义开始解析元素的方法. 这里是将<xxx>中的名称xxx提取出来.
public void startElement(String uri, String localName, String qName, Attributes attributes)throws SAXException {
currentValue.delete(0, currentValue.length()); this.currentName =qName;
} //这里是将<xxx></xxx>之间的值加入到currentValue
public void characters(char[] ch, int start, int length) throws SAXException {
currentValue.append(ch, start, length);
} //在遇到</xxx>结束后,将之前的名称和值一一对应保存在props中public void endElement(String uri, String localName, String qName) throws SAXException {
props.put(qName.toLowerCase(), currentValue.toString().trim());
}

}

展开 收起

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

任天堂 Nintendo Switch《舞力全开 Just Dance》 游戏兑换卡

159元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

106元起

WPS 金山软件 WPS 超级会员 3年卡

WPS 金山软件 WPS 超级会员 3年卡

328元起

Microsoft 微软 Office 365 个人版

Microsoft 微软 Office 365 个人版

106元起

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

299元起

Microsoft 微软 office365家庭版microsoft365增强版15个月

Microsoft 微软 office365家庭版microsoft365增强版15个月

289元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

189元起

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

Microsoft 微软 office专业版永久激活码office2019增强版终身版outlook密钥

249元起

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

729.6元起

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

暂无报价

国行版 Switch体感游戏套装 《健身环大冒险》

国行版 Switch体感游戏套装 《健身环大冒险》

439元起

WPS 金山软件 会员季卡

WPS 金山软件 会员季卡

59.85元起

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

1288元起

Microsoft 微软 office365家庭版15个月 203元

Microsoft 微软 office365家庭版15个月 203元

198元起

自助挂号应用服务

自助挂号应用服务

15000元起
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
0
扫一下,分享更方便,购买更轻松