生成xmljava
Ⅰ java遞歸生成xml
一般這種樹形結構的,資料庫表不應只有id、 parentId、 name ,最好是有一個欄位描述該節點是什麼節點,比如新加一列:leaf ,所有不是父節點的節點都是葉子節點,leaf列標識為1,其餘父節點標為0,就簡單多了
如果不能改表結構,你只有多查詢一輪,你每次根據父節指搭點去查子唯棗拿節點,查出子節點以後,還要拿子節點再去查,看看是否子節點下還有子節點,知道查詢結果為空,標記javabean為葉子節點即可
至於如何生成xml 簡單易用的 dom4j、jdom等 都是簡單易用的岩納
Ⅱ 怎樣將xml檔案生成java程式碼
怎樣將xml檔案生成java程式碼 xml是有格式的檔擾喚穗案,到底裡面儲存了什麼資料,得知道,才能辦法處理
java程式碼怎樣生成csv檔案
我來說一下大致的實現步驟,具體實現需要你自己去寫了
1.檢索資料,檢索到的資料假定為一個list
2.你需要自己寫一個objectToString之類的方法來把檢索到的資料轉化為一個String或StringBuffer,就是往各欄位間插",",往個記錄間插"\r\n",如此這類的轉換,假定轉換好的字串為strResult.
3.然後用下面的程式碼寫在後台來控制下載,檔名那裡你可以把時間格式控制好,或者用前台傳過來的引數做名字。
response.setContentType("application/download;charset=UTF-8");
response.setHeader("Content-disposition","attachment;filename=\"" +new Date()+".csv\"");
Java程式碼完成後,怎樣生成檔案?
JCreator Pro 點一下編譯按鏈迅鈕不就行了嗎,再點執行按鈕就運行了
eclipse通過xml檔案如何找到java程式碼
一、配置指南:
1、Eclipse中類檔案(*.java)自動補全配置:
Windows->preferance->java->Editor->Content Assist
面板最下端 Auto Activation 將Auto activation triggers for Java後面的文字框中的「.」替換成「.」(注意後面還有一個".")
2、Eclipse中*.xml檔案自動補全配置:
Windows->preferance->XML->XML Files->Editor->Content Assist
面板最上端 Auto Activation 將Prompt when these characters are inserted後面的文字框中的「<=:」替換成「<=: 」(注意後面還有一個空格)
二、使用指南:
在需要程式碼自動補全的地方直接按ALT+/,就會出現類似如下圖所示的效果,選擇就可以啦:
java程式碼生成dat檔案
File filename = new File("F:\\zd.dat");
說明:dat可以改成任何副檔名,是自己可以定義的,如下:
public void createFile(){path表示所建立檔案的路徑String path = "d:/tr/rt";File f = new File(path);if(!f.exists()){f.mkdirs();} fileName表示建立的檔名;為txt型別;String fileName="test.txt";File file = new File(f,fileName);if(!file.exists()){try {file.createNewFile();} catch (IOException e) { TODO Auto-generated catch blocke.printStackTrace();}}}現在可以在d:/tr/rt 目錄下找到test.txt檔案
怎麼生成pdf檔案 java程式碼
使用iText外掛,這是著名的開放原始碼的站點sourcefe一個專案。網上很多例子,自己搜一下,不給你舉例了。
java 怎樣解析 excel生成的xml檔案
java解析excel生成的xml檔案的方法是使用dom4j實現的。
dom4j是一個簡單的開源庫,用於處理XML、 XPath和XSLT,它基於Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。
1、excel生成的xml樣例檔案緩卜:
<?xml version="1.0"?>
<?mso-application progid="Excel.Sheet"?>
<Workbook xmlns="urn:schemas-microsoft-:office:spreadsheet"
xmlns:o="urn:schemas-microsoft-:office:office"
xmlns:x="urn:schemas-microsoft-:office:excel"
xmlns:ss="urn:schemas-microsoft-:office:spreadsheet"
xmlns:=":w3./TR/REC-40">
<DocumentProperties xmlns="urn:schemas-microsoft-:office:office">
<Created>2006-09-16T00:00:00Z</Created>
<LastSaved>2016-07-25T03:26:50Z</LastSaved>
<Version>14.00</Version>
</DocumentProperties>
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-:office:office">
<AllowPNG/>
<RemovePersonalInformation/>
</OfficeDocumentSettings>
<ExcelWorkbook xmlns="urn:schemas-microsoft-:office:excel">
<WindowHeight>7956</WindowHeight>
<WindowWidth>14808</WindowWidth>
<WindowTopX>240</WindowTopX>
<WindowTopY>168</WindowTopY>
<ActiveSheet>2</ActiveSheet>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
</ExcelWorkbook>
<Styles>
<Style ss:ID="Default" ss:Name="Normal">
<Alignment ss:Vertical="Bottom"/>
<Borders/>
<Font ss:FontName="宋體" x:CharSet="134" ss:Size="11" ss:Color="#000000"/>
<Interior/>
<NumberFormat/>
<Protection/>
</Style>
<Style ss:ID="s16" ss:Name="好">
<Font ss:FontName="宋體" x:CharSet="134" ss:Size="11" ss:Color="#006100"/>
<Interior ss:Color="#C6EFCE" ss:Pattern="Solid"/>
</Style>
<Style ss:ID="s17">
<Alignment ss:Horizontal="Left" ss:Vertical="Center" ss:Indent="1"
ss:WrapText="1"/>
<Font ss:FontName="宋體" x:CharSet="134" ss:Size="8" ss:Color="#686868"/>
<NumberFormat ss:Format="@"/>
</Style>
<Style ss:ID="s18" ss:Parent="s16">
<Alignment ss:Vertical="Bottom"/>
</Style>
<Style ss:ID="s19">
<NumberFormat ss:Format="yyyy/m/d\ h:mm:ss"/>
</Style>
</Styles>
<Worksheet ss:Name="Sheet1">
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="3" x:FullColumns="1"
x:FullRows="1" ss:DefaultRowHeight="14.4">
<Row>
<Cell><Data ss:Type="String">工號</Data></Cell>
<Cell><Data ss:Type="String">姓名 </Data></Cell>
<Cell ss:Index="5"><Data ss:Type="String">工號</Data></Cell>
<Cell><Data ss:Type="String">姓名</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="Number">111</Data></Cell>
<Cell><Data ss:Type="String">張三</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="Number">111</Data></Cell>
<Cell ss:Formula="=VLOOKUP(R2C5:R3C5,RC[-5]:R[1]C[-4],2)"><Data
ss:Type="String">張三</Data></Cell>
</Row>
<Row>
<Cell><Data ss:Type="Number">112</Data></Cell>
<Cell><Data ss:Type="String">李四</Data></Cell>
<Cell ss:Index="5"><Data ss:Type="Number">112</Data></Cell>
<Cell ss:Formula="=VLOOKUP(R2C5:R3C5,RC[-5]:R[1]C[-4],2)"><Data
ss:Type="String">李四</Data></Cell>
</Row>
</Table>
<WorksheetOptions xmlns="urn:schemas-microsoft-:office:excel">
<PageSetup>
<Header x:Margin="0.3"/>
<Footer x:Margin="0.3"/>
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Panes>
<Pane>
<Number>3</Number>
<ActiveRow>7</ActiveRow>
<ActiveCol>5</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
<ProtectScenarios>False</ProtectScenarios>
</WorksheetOptions>
</Worksheet>
</Workbook>
2、java解析程式碼:
import java.io.File;
import java.util.Iterator;
import .dom4j.Attribute;
import .dom4j.Document;
import .dom4j.Element;
import .dom4j.io.SAXReader;
public class Demo {
public static void main(String[] args) throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read(new File("person.xml"));
Element root = document.getRootElement();
Iterator it = root.elementIterator();
while (it.hasNext()) {
Element element = (Element) it.next();
未知屬性名稱情況下
/*Iterator attrIt = element.attributeIterator();
while (attrIt.hasNext()) {
Attribute a = (Attribute) attrIt.next();
System.out.println(a.getValue());
}*/
已知屬性名稱情況下
System.out.println("id: " + element.attributeValue("id"));
未知元素名情況下
/*Iterator eleIt = element.elementIterator();
while (eleIt.hasNext()) {
Element e = (Element) eleIt.next();
System.out.println(e.getName() + ": " + e.getText());
}
System.out.println();*/
已知元素名情況下
System.out.println("title: " + element.elementText("title"));
System.out.println("author: " + element.elementText("author"));
System.out.println();
}
}
}
求一段 讀出\修改 xml檔案的java程式碼
import .dom4j.Element;
import .dom4j.tree.DefaultElement;
import .dom4j.tree.DefaultDocument;
上面是主要的包!
String xml = "";
Element _root = new DefaultElement("Business");
Element _node = _root.addElement("Output");
try {
_node.addElement("Password").addText("123");
_node.addElement("ReturnData").addText("1");
_node.addElement("ReturnInfo").addText("登陸成功");
}
catch (Exception ex) {
ex.printStackTrace();
}
DefaultDocument doc = new DefaultDocument(_root);
xml = doc.asXML();
上面是生成XML。
怎麼通過java程式碼向xml檔案中添加註釋
package .tuobao.test;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.util.Iterator;
import java.util.List;
import .dom4j.Attribute;
import .dom4j.Document;
import .dom4j.DocumentHelper;
import .dom4j.Element;
import .dom4j.io.OutputFormat;
import .dom4j.io.SAXReader;
import .dom4j.io.XMLWriter;
public class testDom4j {
private static final String path = "f:" + java.io.File.separator
+ "eee.xml";
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(createXMLFile(path));
System.out.println(modiXMLFile(path, path));
System.out.println(formatXMLFile(path));
}
/**
* 建立一個XML文件,文件名由輸入屬性決定
*
* @param param
* filename 需建立的檔名
* @return返回操作結果, 0表失敗, 1表成功
*/
public static int createXMLFile(String filename) {
/** 返回操作結果, 0表失敗, 1表成功 */
int returnValue = 0;
/** 建立document物件 */
Document document = DocumentHelper.createDocument();
/** 建立XML文件的根books */
Element booksElement = document.addElement("books");
/** 加入一行注釋 */
booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");
/** 加入第一個book節點 */
Element bookElement = booksElement.addElement("book");
/** 加入show屬性內容 */
bookElement.addAttribute("show", "yes");
/** 加入title節點 */
Element titleElement = bookElement.addElement("title");
/** 為title設定內容 */
titleElement.setText("Dom4j Tutorials");
/** 類似的完成後兩個book */
bookElement = booksElement.addElement("book");
bookElement.addAttribute("show", "yes");
titleElement = bookElement.addElement("title");
titleElement.setText("Lucene Studing");
bookElement = booksElement.addElement("book");
bookElement.addAttribute("show", "no");
titleElement = bookElement.addElement("title");
titleElement.setText("Lucene in Action");
/** 加入owner節點 */
Element ownerElement = booksElement.addElement("owner");
ownerElement.setText("O'Reilly");
try {
/** 將document中的內容寫入檔案中 */
XMLWriter writer = new XMLWriter(new FileWriter(new java.io.File(
filename)));
writer.write(document);
writer.flush();
writer.close();
/** 執行成功,需返回1 */
returnValue = 1;
} catch (Exception ex) {
returnValue = 0;
ex.printStackTrace();
}
return returnValue;
}
/**
* 修改XML檔案中內容,並另存為一個新檔案 重點掌握dom4j中如何新增節點,修改節點,刪除節點
*
* @param filename
* 修改物件檔案
* @param newfilename
* 修改後另存為該檔案
* @return 返回操作結果, 0表失敗, 1表成功
*/
public static int modiXMLFile(String filename, String newfilename) {
int returnValue = 0;
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new java.io.File(filename));
/** 修改內容之一: 如果book節點中show屬性的內容為yes,則修改成no */
/** 先用xpath查詢物件 */
List list = document.selectNodes("/books/book/@show");
Iterator iter = list.iterator();
while (iter.hasNext()) {
Attribute attribute = (Attribute) iter.next();
if (attribute.getValue().equals("yes")) {
attribute.setValue("no");
}
}
/**
* 修改內容之二: 把owner項內容改為"測試修改"
* 並在owner節點中加入date節點,date節點的內容為2004-09-11,還為date節點新增一個屬性type
*/
list = document.selectNodes("/books/owner");
iter = list.iterator();
if (iter.hasNext()) {
Element ownerElement = (Element) iter.next();
ownerElement.setText("測試修改");
Element dateElement = ownerElement.addElement("date");
dateElement.setText("2008-09-11");
dateElement.addAttribute("type", "日期");
}
/** 修改內容之三: 若title內容為Dom4j Tutorials,則刪除該節點 */
list = document.selectNodes("/books/book");
iter = list.iterator();
while (iter.hasNext()) {
Element bookElement = (Element) iter.next();
Iterator iterator = bookElement.elementIterator("title");
while (iterator.hasNext()) {
Element titleElement = (Element) iterator.next();
if (titleElement.getText().equals("Dom4j Tutorials")) {
bookElement.remove(titleElement);
}
}
}
try {
/** 格式化輸出,型別IE瀏覽一樣 */
OutputFormat format = OutputFormat.createPrettyPrint();
/** 指定XML編碼 */
format.setEncoding("GBK");
/** 將document中的內容寫入檔案中 */
XMLWriter writer = new XMLWriter(new FileWriter(new
File(newfilename)),format);
保證編碼為UTF-8,支援中文寫入
XMLWriter writer = new XMLWriter(new FileOutputStream(new File(
newfilename)), format);
writer.write(document);
writer.flush();
writer.close();
/** 執行成功,需返回1 */
returnValue = 1;
} catch (Exception ex) {
returnValue = 0;
ex.printStackTrace();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return returnValue;
}
/**
* 格式化XML文件,並解決中文問題
*
* @param filename
* @return
*/
public static int formatXMLFile(String filename) {
int returnValue = 0;
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File(filename));
XMLWriter writer = null;
/** 格式化輸出,型別IE瀏覽一樣 */
OutputFormat format = OutputFormat.createPrettyPrint();
/** 指定XML編碼 */
format.setEncoding("utf-8");
writer = new XMLWriter(new FileWriter(new File(filename)), format);
writer.write(document);
writer.flush();
writer.close();
/** 執行成功,需返回1 */
returnValue = 1;
} catch (Exception ex) {
returnValue = 0;
ex.printStackTrace();
}
return returnValue;
}
}
這個希望對你有用。。
Ⅲ JAVA 生成xml格式,具體格式如下,請問JAVA方法怎麼寫
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileOutputStream;
importjava.io.IOException;
importorg.w3c.dom.*;
importorg.xml.sax.SAXException;
importjavax.xml.parsers.*;
importjavax.xml.transform.*;
importjavax.xml.transform.dom.DOMSource;
importjavax.xml.transform.stream.*;
importjavax.xml.xpath.*;
publicclassTest{
publicstaticvoidmain(String[]args){
DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
ElementtheBook=null,theElem=null,root=null;
try{
factory.(true);
DocumentBuilderdb=factory.newDocumentBuilder();
Documentxmldoc=db.parse(newFile("Test1.xml"));
root=xmldoc.getDocumentElement();
theBook=(Element)selectSingleNode("/books/book[name='哈里波特']",root);
轎做System.out.println("---查詢找《哈里波特》----");
ElementnameNode=(Element)theBook.getElementsByTagName("price").item(0);
歲帆滲Stringname=nameNode.getFirstChild().getNodeValue();
System.out.println(name);
output(theBook);
System.out.println("=============selectSingleNode(books/book[name='哈里波特'],root)==================");
//---新建一本書開始----
theBook=xmldoc.createElement("book");
theElem=xmldoc.createElement("name");
theElem.setTextContent("新書");
theBook.appendChild(theElem);
theElem=xmldoc.createElement("price");
theElem.setTextContent("20");
theBook.appendChild(theElem);
theElem=xmldoc.createElement("memo");
theElem.setTextContent("新書乎脊的更好看。");
theBook.appendChild(theElem);
root.appendChild(theBook);
System.out.println("---新建一本書開始----");
output(xmldoc);
System.out.println("==============================");
//---新建一本書完成----
//---下面對《哈里波特》做一些修改。----
//---查詢找《哈里波特》----
//---此時修改這本書的價格-----
theBook.getElementsByTagName("price").item(0).setTextContent("15");//getElementsByTagName返回的是NodeList,所以要跟上item(0)。另外,getElementsByTagName("price")相當於xpath的".//price"。
System.out.println("---此時修改這本書的價格----");
output(theBook);
//---另外還想加一個屬性id,值為B01----
theBook.setAttribute("id","B01");
System.out.println("---另外還想加一個屬性id,值為B01----");
output(theBook);
//---對《哈里波特》修改完成。----
//---要用id屬性刪除《三國演義》這本書----
theBook=(Element)selectSingleNode("/books/book[@id='B02']",root);
System.out.println("---要用id屬性刪除《三國演義》這本書----");
output(theBook);
theBook.getParentNode().removeChild(theBook);
System.out.println("---刪除後的XML----");
output(xmldoc);
//---再將所有價格低於10的書刪除----
NodeListsomeBooks=selectNodes("/books/book[price<10]",root);
System.out.println("---再將所有價格低於10的書刪除---");
System.out.println("---符合條件的書有"+someBooks.getLength()+"本。---");
for(inti=0;i<someBooks.getLength();i++){
someBooks.item(i).getParentNode().removeChild(someBooks.item(i));
}
output(xmldoc);
saveXml("Test1_Edited.xml",xmldoc);
}catch(ParserConfigurationExceptione){
e.printStackTrace();
}catch(SAXExceptione){
e.printStackTrace();
}catch(IOExceptione){
e.printStackTrace();
}
}
publicstaticvoidoutput(Nodenode){//將node的XML字元串輸出到控制台
=TransformerFactory.newInstance();
try{
Transformertransformer=transFactory.newTransformer();
transformer.setOutputProperty("encoding","gb2312");
transformer.setOutputProperty("indent","yes");
DOMSourcesource=newDOMSource();
source.setNode(node);
StreamResultresult=newStreamResult();
result.setOutputStream(System.out);
transformer.transform(source,result);
}catch(){
e.printStackTrace();
}catch(TransformerExceptione){
e.printStackTrace();
}
}
(Stringexpress,Objectsource){//查找節點,並返回第一個符合條件節點
Noderesult=null;
XPathFactoryxpathFactory=XPathFactory.newInstance();
XPathxpath=xpathFactory.newXPath();
try{
result=(Node)xpath.evaluate(express,source,XPathConstants.NODE);
}catch(XPathExpressionExceptione){
e.printStackTrace();
}
returnresult;
}
(Stringexpress,Objectsource){//查找節點,返回符合條件的節點集。
NodeListresult=null;
XPathFactoryxpathFactory=XPathFactory.newInstance();
XPathxpath=xpathFactory.newXPath();
try{
result=(NodeList)xpath.evaluate(express,source,XPathConstants.NODESET);
}catch(XPathExpressionExceptione){
e.printStackTrace();
}
returnresult;
}
publicstaticvoidsaveXml(StringfileName,Documentdoc){//將Document輸出到文件
=TransformerFactory.newInstance();
try{
Transformertransformer=transFactory.newTransformer();
transformer.setOutputProperty("indent","yes");
DOMSourcesource=newDOMSource();
source.setNode(doc);
StreamResultresult=newStreamResult();
result.setOutputStream(newFileOutputStream(fileName));
transformer.transform(source,result);
}catch(){
e.printStackTrace();
}catch(TransformerExceptione){
e.printStackTrace();
}catch(FileNotFoundExceptione){
e.printStackTrace();
}
}
}
XML:
<?xmlversion="1.0"encoding="GBK"?>
<books>
<book>
<name>哈里波特</name>
<price>10</price>
<memo>這是一本很好看的書。</memo>
</book>
<bookid="B02">
<name>三國演義</name>
<price>10</price>
<memo>四大名著之一。</memo>
</book>
<bookid="B03">
<name>水滸</name>
<price>6</price>
<memo>四大名著之一。</memo>
</book>
<bookid="B04">
<name>紅樓</name>
<price>5</price>
<memo>四大名著之一。</memo>
</book>
</books>
Ⅳ 如何用java代碼創建xml文件
用java自帶的就可以,有問題可以問我
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
//構造
public XMLUtil(String name) throws ParserConfigurationException {
filename = name;
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
builder = factory.newDocumentBuilder();
document = builder.newDocument();
}
/**
* 保存到文件
*/
public void toSave() {
try {
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
DOMSource source = new DOMSource(document);
transformer.setOutputProperty(OutputKeys.ENCODING, "GB2312");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
PrintWriter pw = new PrintWriter(new FileOutputStream(filename));
StreamResult result = new StreamResult(pw);
transformer.transform(source, result);
} catch (TransformerException mye) {
mye.printStackTrace();
} catch (IOException exp) {
exp.printStackTrace();。
Ⅳ 如何用java語言生成xml文件,並將它返回
實例:
holen.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<!--This is a test for dom4j, holen, 2004.9.11-->
<book show="yes">
<title>Dom4j Tutorials</title>
</book>
<book show="yes">
<title>Lucene Studing</title>
</book>
<book show="no">
<title>Lucene in Action</title>
</book>
<owner>O'Reilly</owner>
</books>
建立一個XML文檔:
/**
* 建立一個XML文檔,文檔名由輸入屬性決定
* @param filename 需建立的文件名
* @return 返回操作結果, 0表失敗, 1表成功
*/
public int createXMLFile(String filename){
/** 返回操作結果, 0表失敗, 1表成功 */
int returnValue = 0;
/** 建立document對象 */
Document document = DocumentHelper.createDocument();
/** 建立XML文檔的根books */
Element booksElement = document.addElement("books");
/** 加入一行注釋 */
booksElement.addComment("This is a test for dom4j, holen, 2004.9.11");
/** 加入第一個book節點 */
Element bookElement = booksElement.addElement("book");
/** 加入show屬性內容 */
bookElement.addAttribute("show","yes");
/** 加入title節點 */
Element titleElement = bookElement.addElement("title");
/** 為title設置內容 */
titleElement.setText("Dom4j Tutorials");
/** 類似的完成後兩個book */
bookElement = booksElement.addElement("book");
bookElement.addAttribute("show","yes");
titleElement = bookElement.addElement("title");
titleElement.setText("Lucene Studing");
bookElement = booksElement.addElement("book");
bookElement.addAttribute("show","no");
titleElement = bookElement.addElement("title");
titleElement.setText("Lucene in Action");
/** 加入owner節點 */
Element ownerElement = booksElement.addElement("owner");
ownerElement.setText("O'Reilly");
try{
/** 將document中的內容寫入文件中 */
XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));
writer.write(document);
writer.close();
/** 執行成功,需返回1 */
returnValue = 1;
}catch(Exception ex){
ex.printStackTrace();
}
return returnValue;
}
說明:
Document document = DocumentHelper.createDocument();
通過這句定義一個XML文檔對象。
Element booksElement = document.addElement("books");
通過這句定義一個XML元素,這里添加的是根節點。
Element有幾個重要的方法:
l addComment:添加註釋
l addAttribute:添加屬性
l addElement:添加子元素
Ⅵ java怎麼將數據導出為xml文件
給你一個將資料庫中表格生成xml文件的簡單例子,希望對你有幫助
package book;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.*;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
public class SqlBean {
Connection con=null;
PreparedStatement stmt=null;
ResultSet rs=null;
public SqlBean()
{
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con=DriverManager.getConnection("","","");
stmt=con.prepareStatement("select * from book order by id");
}catch(Exception e)
{
e.printStackTrace();
}
}
public int JdomParser(){
this.query();
int m=1;
try{
Element root,book,bookname,author,price;
root=new Element("BookHome");
Document doc=new Document(root);
ResultSetMetaData rsmd=rs.getMetaData();
int colCount=rsmd.getColumnCount();
while(rs.next())
{
book=new Element("book");
bookname=new Element(rsmd.getColumnName(2));
author=new Element(rsmd.getColumnName(3));
price=new Element(rsmd.getColumnName(4));
bookname.setText(rs.getString(2));
author.setText(rs.getString(3));
price.setText(rs.getString(4));
book.addContent(bookname);
book.addContent(author);
book.addContent(price);
book.setAttribute(rsmd.getColumnName(1), rs.getString(1));
root.addContent(book);
}
Format format=Format.getCompactFormat();
format.setEncoding("gb2312");
format.setIndent(" ");
XMLOutputter XMLOut=new XMLOutputter(format);
XMLOut.output(doc, new FileOutputStream("D:/workspace/XML/book.xml"));
m=0;
}catch(Exception e){
e.printStackTrace();
}
finally
{
this.close();
}
return m;
}
public ResultSet query()
{
try{
rs=stmt.executeQuery();
}catch(Exception e){
e.printStackTrace();
}
return rs;
}
public void close()
{
try{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(con!=null)
con.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
}
Ⅶ 使用Java生成XML文件時,如何能讓文件自動換行
換行符" ",如是用dom4j之類的jar包操作,dom4j換行如下
/**
*通過org.dom4j.io.OutputFormat來設置XML文檔輸出格式
*/
OutputFormatformat=OutputFormat.createPrettyPrint();//設置XML文檔輸出格式
format.setEncoding("正孫GB2312");//設置XML文檔的編碼類型
format.setSuppressDeclaration(true);
format.setIndent(true);//設置是否縮進
format.setIndent("");//以空格方式實現縮進陸清擾
早旦format.setNewlines(true);//設置是否換行
Ⅷ 怎麼使用java導出大數據為xml文件
dom4j可以試試,不知道你的數據量有多大,如果太大的話,我沒試過
xml文件是有規律的,你可以把要導出的數據構造一下,
我有個簡單的代碼
packagecom.test.xml;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.io.Writer;
importorg.dom4j.Document;
importorg.dom4j.DocumentHelper;
importorg.dom4j.Element;
importorg.dom4j.io.OutputFormat;
importorg.dom4j.io.XMLWriter;
publicclassDom4JXML{
publicvoidcreateXML(){
//用工廠類創建一個document實例
Documentdoc=DocumentHelper.createDocument();
//創建根元素emps
ElementrootEle=doc.addElement("emps");
//添加註釋
rootEle.addComment("這是一個dom4j生成的xml文件");
//emps根節點下創建一個emp節點
ElementempEle=rootEle.addElement("emp");
//emp添加屬性id="1"
empEle.addAttribute("id","1");
//emp節點下創建一個name節點
ElementnameEle=empEle.addElement("name");
//name節點下創建一個文本節點zhangsan
nameEle.setText("zhangsan");
//再為name節點創建一個兄弟節點
ElementsexEle=empEle.addElement("sex");
sexEle.setText("man");
//將document中的內容寫入文件中
try{
Writerout=newFileWriter("F:\emps.xml");
//格式化輸出,類型IE瀏覽一樣
OutputFormatformat=OutputFormat.createPrettyPrint();
//OutputFormatformat=OutputFormat.createCompactFormat();
format.setEncoding("UTF-8");
//創建寫出對象
XMLWriterwriter=newXMLWriter(out,format);
writer.write(doc);
writer.close();
System.out.println("生成emps.xml成功。");
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
System.out.println("失敗了。");
}
}
publicstaticvoidmain(String[]args){
newDom4JXML().createXML();
}
}
然而從xml文件中解析以後的數據收集可以用SAX試試看
我這里有個簡單的例子
packagecom.test.xml;
importorg.xml.sax.Attributes;
importorg.xml.sax.SAXException;
importorg.xml.sax.helpers.DefaultHandler;
{
publicvoidstartDocument()throwsSAXException{
System.out.println("起始文擋");
}
publicvoidendDocument()throwsSAXException{
System.out.println("結束文擋");
}
publicvoidcharacters(char[]ch,intstart,intlength)throwsSAXException{
StringcharString=newString(ch,start,length);
System.out.println("字元:"+charString);
}
publicvoidstartElement(StringnamespaceURI,StringlocalName,StringqName,Attributesatts)throwsSAXException{
System.out.println("起始元素:"+qName);
for(inti=0;i<atts.getLength();i++){
System.out.println("屬性值:"+atts.getValue(i));
}
}
publicvoidendElement(StringnamespaceURI,StringlocalName,StringqName)throwsSAXException{
System.out.println("結束元素:"+qName);
}
}
packagecom.test.xml;
importjavax.xml.parsers.SAXParser;
importjavax.xml.parsers.SAXParserFactory;
publicclassBooks{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args)throwsException{
//TODO自動生成方法存根
SAXParserFactoryfactory=SAXParserFactory.newInstance();
SAXParserparser=factory.newSAXParser();
parser.parse("booksamp.xml",newSAXParseHandler());
}
}
Ⅸ 如何用java生成一個XML文件,並且將該文件壓縮成ZIP格式後再寫到硬碟上
在你聲明ZipEntry的時候在name後加上.xml後綴就可以沖核了!!!
實例如下:
public static void main(String[] arg) throws Exception{
String xml;
/*
* 生成你的xml數據,存在String xml中。
*/散拿掘
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream("D://test.zip"));
//聲明ZipOutputStream,用來輸出zip文件。
ZipEntry entry = new ZipEntry("test.xml");
//聲明ZipEntry
zipOut.putNextEntry(entry);
//將entry加入到zipOut中。
DataOutputStream dataOs = new DataOutputStream(zipOut);
//利用DataOutputStream對ZipOutputStream進行包裝。敏宏
dataOs.writeUTF(gd);
//輸出zip文件。
dataOs.close();
}
運行後,在D盤里就有一個test.zip文件,里包含的就是一個test.xml文件了。
Ⅹ 如何用java生成一個xml文件
一個XML文檔,可以先構造一個DOM,然後將DOM轉化為xml序列,輸出或者生成文件。package test;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class Test {
public static void generate(){
try {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.newDocument();
document.setXmlVersion("1.0");
document.setXmlStandalone(true);
Element root = document.createElement_x("MobileNet"); //創建根節點
document.appendChild(root); //將根節點添加到Document對象中
Element pageElement = document.createElement_x("page"); //設置第一個page元素到
pageElement.setAttribute("name", "list.jsp"); //設置page節點的name屬性
Element methodElement = document.createElement_x("method"); //設置method節點
methodElement.setTextContent("get"); //給method設置值
pageElement.appendChild(methodElement); //添加method節點到page節點內
Element displayElement = document.createElement_x("display"); //設置method節點
displayElement.setTextContent("list撒旦發放"); //給display設置值
pageElement.appendChild(displayElement); //添加display節點到page節點內
Element request_paramElement = document.createElement_x("request_param");
request_paramElement.setTextContent("request_param1|request_param2");
pageElement.appendChild(request_paramElement);
root.appendChild(pageElement);
pageElement = document.createElement_x("page"); //設置第二個page元素到
pageElement.setAttribute("name", "content.jsp"); //設置page節點的name屬性
methodElement = document.createElement_x("method");
methodElement.setTextContent("post");
pageElement.appendChild(methodElement);
displayElement = document.createElement_x("display");
displayElement.setTextContent("content");
pageElement.appendChild(displayElement);
Element url_titleElement = document.createElement_x("url_title"); //設置url_title節點
url_titleElement.setTextContent("title,publisher,published_calendar"); //給url_title設置值
pageElement.appendChild(url_titleElement); //添加url_title節點到page節點內
root.appendChild(pageElement); //將page段加人根節點內
TransformerFactory transFactory = TransformerFactory.newInstance(); //開始把Document映射到文件
Transformer transFormer = transFactory.newTransformer();
DOMSource domSource = new DOMSource(document); //設置輸出結果
File file = new File("MobileNetRule.xml"); //生成xml文件
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream out = new FileOutputStream(file); //文件輸出流
StreamResult xmlResult = new StreamResult(out); //設置輸入源
transFormer.transform(domSource, xmlResult); //輸出xml文件
System.out.println(file.getAbsolutePath()); //測試文件輸出的路徑
TransformerFactory tf = TransformerFactory.newInstance();
Transformer t = tf.newTransformer();
t.setOutputProperty("{/encoding/}","GB2312/");
ByteArrayOutputStream boc = new ByteArrayOutputStream();
t.transform(new DOMSource(document), new StreamResult(boc));
String xmlstring = boc.toString();
System.out.println(xmlstring);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args){
Test.generate();
}
}