寫入文件:

創(chuàng)新互聯(lián)專注于師宗企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站開發(fā)。師宗網(wǎng)站建設(shè)公司,為師宗等地區(qū)提供建站服務(wù)。全流程按需策劃,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
String filepathWrite = "d:\\baidu.xlsx";
FileOutputStream fileOut = new FileOutputStream(filepathWrite);
wbWrite.write(fileOut);
fileOut.close();
System.out.println("寫入成功!");
is.close();
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
JAVA與XML文件,可以說是軟件開發(fā)的“黃金搭檔”,而如何使用JAVA完成對(duì)XML文件的讀取,是我們首先要解決的問題。
一、XML文件
這個(gè)示例文件包括了用來打開ORACLE數(shù)據(jù)庫的各種參數(shù)
?xml version="1.0" encoding="UTF-8"?
dbmsg
dbinfo
drivernameoracle.jdbc.driver.OracleDriver/drivername
sConnStrjdbc:oracle:thin:@11.88.225.80:1521:VOUCHERDB/sConnStr
usernameSYS AS SYSDBA/username
passwordvoucherdb/password
/dbinfo
/dbmsg
二、編寫類名為ReadXml的類,用于解析XML文件
我們要在應(yīng)用程序中打開數(shù)據(jù)庫,就必須完成對(duì)該文件中drivername、sConnStr、username、password的讀取,通過查找有關(guān)資料,筆者編制了以下程序,用于讀取文件名為filename的XML文件。
package voucher.basic;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
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 ReadXml {
private String drivername;
private String sConnStr;
private String username;
private String password;
public String getDrivername() {
return drivername;
}
public String getSConnStr() {
return sConnStr;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
public void setDrivername(String drivername) {
this.drivername = drivername;
}
public void setSConnStr(String connStr) {
sConnStr = connStr;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public ReadXml(String fileName){
DocumentBuilderFactory domfac=DocumentBuilderFactory.newInstance();
try {
DocumentBuilder dombuilder=domfac.newDocumentBuilder();
InputStream is=new FileInputStream(fileName);
Document doc=dombuilder.parse(is);
Element root=doc.getDocumentElement();
NodeList dbinfo=root.getChildNodes();
if(dbinfo!=null){
for(int i=0;idbinfo.getLength();i++){
Node db=dbinfo.item(i);
for(Node node=db.getFirstChild();node!=null;node=node.getNextSibling()){
if(node.getNodeType()==Node.ELEMENT_NODE){
if(node.getNodeName().equals("drivername")){
setDrivername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("sConnStr")){
setSConnStr(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("username")){
setUsername(node.getFirstChild().getNodeValue());
}
if(node.getNodeName().equals("password")){
setPassword(node.getFirstChild().getNodeValue());
}
}
}
}
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
這個(gè)以ReadXml命名的類,使用了參數(shù)為文件名的構(gòu)造方法,用戶只要將配置文件我名稱傳遞給該方法,就可以完成對(duì)XML文件的解析,進(jìn)而完成對(duì)相應(yīng)參數(shù)數(shù)的讀取。
三、如何獲取XML文件全路徑并讀取配置參數(shù)
獲取XML文件全路徑的方法有兩個(gè),一是在servlet中獲取,二是在單獨(dú)的JAVA類中獲取。
1.在servlet中獲取XML文件的全路徑并讀取配置參數(shù)
程序片段String dirPath = getServletContext().getRealPath( "/WEB-INF");
String fileName = dirPath + "/conn.xml";
ReadXml xm = new ReadXml(fileName);
String DriverName = xm.getDrivername();
String connStr = xm.getSConnStr();
String user = xm.getUsername();
String pas = xm.getPassword();
將這段程序添加到servlet中dopost()之后即可完成參數(shù)的讀取
2.在單獨(dú)的JAVA類中獲取全路徑并讀取配置參數(shù)
程序片段
String dirpath = System.getProperty("user.dir");
String xmlFile = dirpath + "/WebRoot/WEB-INF/conn.xml";
ReadXml rdxml = new ReadXml(xmlFile);
String driverName = rdxml.getDrivername();
String sConnStr = rdxml.getSConnStr();
String userName = rdxml.getUsername();
String passWord = rdxml.getPassword();
注:配置文件conn.xml保存在webroot/WEB-INF目錄中。
XSL提供兩種機(jī)制來聯(lián)合樣式表:
1.樣式表導(dǎo)入,允許樣式表之間相互引用
2.樣式表包含,允許樣式表被原文組合.
樣式表導(dǎo)入
一個(gè)XSL樣式表可以包含xsl:import元素.所有xsl:import元素必須出現(xiàn)在樣式表的開頭. xsl:import元素有一個(gè) href 屬性,它的值就表示要導(dǎo)入的樣式表的URI. 相對(duì)URI是指相對(duì)于xsl:import元素的基URI.
xsl:stylesheet xmlns:xsl=""
xsl:import href="article.xsl"/
xsl:import href="bigfont.xsl"/
xsl:define-attribute-set name="note-style"
xsl:attribute-set font-posture="italic"/
/xsl:define-attribute-set
/xsl:stylesheet
導(dǎo)向的樣式表中的規(guī)則和定義比任何被導(dǎo)入樣式表中的規(guī)則和定義都要重要.同樣,一被導(dǎo)入的樣式表中的規(guī)則和定義比之前導(dǎo)入的樣式表中的規(guī)則和定義都要重要.一般來說,更重要的規(guī)則或定義比次重要的規(guī)則或定義要優(yōu)先.每一類的規(guī)則和定義都會(huì)詳細(xì)規(guī)定它.
樣式表包含
一個(gè)樣式表中可以用xsl:include元素來包含另一個(gè)XSL樣式表. xsl:include也有href 屬性,它的值就表示被包含的樣式表的URI. 相對(duì)URI是指相對(duì)于xsl:include元素的基URI. xsl:include元素可以作為xsl:stylesheet元素的子元素,出現(xiàn)在任何xsl:import之后.在XML樹的層次在上該包含生效.由href屬性值定位的資源內(nèi)容作為一個(gè)XML文檔解析,在該文檔中的xsl:stylesheet元素的子元素替代包含文檔的xsl:include元素.同時(shí)在被包含的文檔的xsl:import元素在包含文檔中移上至任一存在的xsl:import元素之后. 不象xsl:import,被包含的規(guī)則或定義不影響他們被處理的方式.
嵌入樣式表
通常一個(gè)樣式表就是一個(gè)完整的XML文檔,xsl:stylesheet元素作為文檔的元素. 然而一個(gè)XSL樣式表也可以嵌入在其它文檔內(nèi)容之中.內(nèi)嵌的方式可能有兩種:XSL樣式表可以原文嵌入在一個(gè)非XML文檔中或者xsl:stylesheet不作為文檔元素出現(xiàn)在一個(gè)XML文檔中.在第二種情況增加了出現(xiàn)內(nèi)嵌樣式,即自己規(guī)定樣式的文檔的可能. XSL還沒有為之定義相應(yīng)的機(jī)制.這是由于可以采用把樣式表結(jié)合文檔的通用方式來實(shí)現(xiàn),只要滿足:
1. 該方式允許一部分內(nèi)容可以規(guī)定為樣式表,例如使用有片段標(biāo)識(shí)符URI
2. 該方式本身能被嵌入在文檔中, 比如作為一個(gè)處理指令.定義這樣的方式不在XSL的范圍之內(nèi).
下例表明了怎樣用xml:stylesheet處理指令將樣式表和文檔結(jié)合來實(shí)現(xiàn)內(nèi)嵌樣式. 其中的URI在片段標(biāo)識(shí)符中使用了一個(gè)Xpointer來確定xsl:stylesheet元素的位置.
?xml version="1.0"?
?xml:stylesheet type="text/xsl" href="#id(style1)"?
!DOCTYPE doc SYSTEM "doc.dtd"
doc
head
xsl:stylesheet xmlns:xsl="" id="style1"
xsl:import href="doc.xsl"/
xsl:template match="id(foo)"
fo:block font-weight="bold"xsl:process-children//fo:block
/xsl:template
/xsl:stylesheet
/head
body
para id="foo"
...
/para
/body
/doc
本文名稱:java代碼加載xsl java加載jar包
網(wǎng)頁路徑:http://www.js-pz168.com/article26/ddjosjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、電子商務(wù)、微信小程序、網(wǎng)站營銷、網(wǎng)站維護(hù)、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)