本文目錄一覽:
- 1、JAVA讀取文件信息生成XML文件。
- 2、怎麼使用java導出大數據為xml文件
- 3、JAVA 生成xml格式,具體格式如下,請問JAVA方法怎麼寫
- 4、如何用java語言生成xml文件,並將它返回
- 5、如何用java代碼創建xml文件
- 6、如何用java生成一個XML文件,並且將該文件壓
JAVA讀取文件信息生成XML文件。
dom4j生成xml方法:
import java.io.*;
import org.dom4j.*;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class XmlTest {
/**
* @param args
*/
public static void main(String[] args) {
try {
File file=new File(“D:/”);
File[] files=file.listFiles();
File xmlfile=new File(“D:/fileInfo.xml”);
if(xmlfile.exists()){
xmlfile.createNewFile();
}
FileOutputStream fos = new FileOutputStream(xmlfile);
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(“gbk”);
XMLWriter writer = new XMLWriter(fos,format);
Document doc = DocumentHelper.createDocument();
Element rootElement = DocumentHelper.createElement(“root”);
rootElement.addAttribute(“version”, “2.0”);
doc.setRootElement(rootElement);
for(int i=0;ifiles.length;i++){
if(files[i].isFile()){
Element fileElement = rootElement.addElement(“file”);
Element nameElement = fileElement.addElement(“name”);
nameElement.addText(files[i].getName().substring(0, files[i].getName().indexOf(“.”)));
Element lengthElement = fileElement.addElement(“length”);
lengthElement.addText(Long.toString(files[i].length()));
Element cssElement = fileElement.addElement(“css”);
cssElement.addText(files[i].getName().substring(files[i].getName().indexOf(“.”)+1));
}
}
writer.write(doc);
} catch (IOException e) {
e.printStackTrace();
}
}
}
執行代碼之後,將D盤下面生成一個名為fileInfo.xml的xml文件,將D盤下面原有的所有文件的信息保存在xml文件之中。
生成的fileInfo.xml的內容格式為:
?xml version=”1.0″ encoding=”gbk”?
root version=”2.0″
file
namelianliankan_92368/name
length2035066/length
cssexe/css
/file
file
name問題/name
length487/length
csstxt/css
/file
/root
name為文件名稱,length為文件大小,css為文件格式。
怎麼使用java導出大數據為xml文件
dom4j可以試試,不知道你的數據量有多大,如果太大的話,我沒試過
xml文件是有規律的,你可以把要導出的數據構造一下,
我有個簡單的代碼
package com.test.xml;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public class Dom4JXML {
public void createXML() {
//用工廠類創建一個document實例
Document doc = DocumentHelper.createDocument();
//創建根元素emps
Element rootEle = doc.addElement(“emps”);
//添加註釋
rootEle.addComment(“這是一個dom4j生成的xml文件”);
//emps根節點下創建一個emp節點
Element empEle = rootEle.addElement(“emp”);
//emp添加屬性id=”1″
empEle.addAttribute(“id”, “1”);
//emp節點下創建一個name節點
Element nameEle = empEle.addElement(“name”);
//name節點下創建一個文本節點zhangsan
nameEle.setText(“zhangsan”);
//再為name節點創建一個兄弟節點
Element sexEle = empEle.addElement(“sex”);
sexEle.setText(“man”);
//將document中的內容寫入文件中
try {
Writer out = new FileWriter(“F:\\emps.xml”);
//格式化輸出,類型IE瀏覽一樣
OutputFormat format = OutputFormat.createPrettyPrint();
//OutputFormat format = OutputFormat.createCompactFormat();
format.setEncoding(“UTF-8”);
//創建寫出對象
XMLWriter writer = new XMLWriter(out,format);
writer.write(doc);
writer.close();
System.out.println(“生成emps.xml成功。”);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println(“失敗了。”);
}
}
public static void main(String[] args) {
new Dom4JXML().createXML();
}
}
然而從xml文件中解析以後的數據收集可以用SAX試試看
我這裡有個簡單的例子
package com.test.xml;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class SAXParseHandler extends DefaultHandler{
public void startDocument()throws SAXException{
System.out.println(“起始文擋”);
}
public void endDocument()throws SAXException{
System.out.println(“結束文擋”);
}
public void characters(char[] ch,int start,int length)throws SAXException{
String charString=new String(ch,start,length);
System.out.println(“字元:”+charString);
}
public void startElement(String namespaceURI,String localName,String qName,Attributes atts)throws SAXException{
System.out.println(“起始元素:”+qName);
for(int i=0;iatts.getLength();i++){
System.out.println(“屬性值:”+atts.getValue(i));
}
}
public void endElement(String namespaceURI,String localName,String qName)throws SAXException{
System.out.println(“結束元素:”+qName);
}
}
package com.test.xml;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
public class Books {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO 自動生成方法存根
SAXParserFactory factory=SAXParserFactory.newInstance();
SAXParser parser=factory.newSAXParser();
parser.parse(“booksamp.xml”,new SAXParseHandler());
}
}
JAVA 生成xml格式,具體格式如下,請問JAVA方法怎麼寫
import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.w3c.dom.*;import org.xml.sax.SAXException;import javax.xml.parsers.*;import javax.xml.transform.*;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.*;import javax.xml.xpath.*;public class Test { public static void main(String[] args) { DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); Element theBook=null, theElem=null, root=null; try { factory.setIgnoringElementContentWhitespace(true); DocumentBuilder db=factory.newDocumentBuilder(); Document xmldoc=db.parse(new File(“Test1.xml”)); root=xmldoc.getDocumentElement(); theBook=(Element) selectSingleNode(“/books/book[name=’哈里波特’]”, root); System.out.println(“— 查詢找《哈里波特》 —-“); Element nameNode=(Element)theBook.getElementsByTagName(“price”).item(0); String name=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的書刪除 —- NodeList someBooks=selectNodes(“/books/book[price10]”, root); System.out.println(“— 再將所有價格低於10的書刪除 —“); System.out.println(“— 符合條件的書有 ”+someBooks.getLength()+”本。 —“); for(int i=0;isomeBooks.getLength();i++) { someBooks.item(i).getParentNode().removeChild(someBooks.item(i)); } output(xmldoc); saveXml(“Test1_Edited.xml”, xmldoc); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void output(Node node) {//將node的XML字元串輸出到控制台 TransformerFactory transFactory=TransformerFactory.newInstance(); try { Transformer transformer = transFactory.newTransformer(); transformer.setOutputProperty(“encoding”, “gb2312”); transformer.setOutputProperty(“indent”, “yes”); DOMSource source=new DOMSource(); source.setNode(node); StreamResult result=new StreamResult(); result.setOutputStream(System.out); transformer.transform(source, result); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } } public static Node selectSingleNode(String express, Object source) {//查找節點,並返回第一個符合條件節點 Node result=null; XPathFactory xpathFactory=XPathFactory.newInstance(); XPath xpath=xpathFactory.newXPath(); try { result=(Node) xpath.evaluate(express, source, XPathConstants.NODE); } catch (XPathExpressionException e) { e.printStackTrace(); } return result; } public static NodeList selectNodes(String express, Object source) {//查找節點,返回符合條件的節點集。 NodeList result=null; XPathFactory xpathFactory=XPathFactory.newInstance(); XPath xpath=xpathFactory.newXPath(); try { result=(NodeList) xpath.evaluate(express, source, XPathConstants.NODESET); } catch (XPathExpressionException e) { e.printStackTrace(); } return result; } public static void saveXml(String fileName, Document doc) {//將Document輸出到文件 TransformerFactory transFactory=TransformerFactory.newInstance(); try { Transformer transformer = transFactory.newTransformer(); transformer.setOutputProperty(“indent”, “yes”); DOMSource source=new DOMSource(); source.setNode(doc); StreamResult result=new StreamResult(); result.setOutputStream(new FileOutputStream(fileName)); transformer.transform(source, result); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } }} XML:?xml version=”1.0″ encoding=”GBK”?booksbookname哈里波特/nameprice10/pricememo這是一本很好看的書。/memo/bookbook id=”B02″name三國演義/nameprice10/pricememo四大名著之一。/memo/bookbook id=”B03″name水滸/nameprice6/pricememo四大名著之一。/memo/bookbook id=”B04″name紅樓/nameprice5/pricememo四大名著之一。/memo/book/books
如何用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”
titleDom4j Tutorials/title
/book
book show=”yes”
titleLucene Studing/title
/book
book show=”no”
titleLucene in Action/title
/book
ownerO’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文件
用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文件,並且將該文件壓
package com.test.io;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class CreateXmlFile {
private static final String XML_TITLE = “?xml version=\”1.0\” encoding=\”utf-8\”?”;
private static final String FILE_PATH = “d:”;
private static final String FILE_SPE = “/”;
private static final String CHANGE_LINES = “\n”;
private static final String FILE_NAME = “text.xml”;
public static void main(String[] args) {
String xml = appendStr();
try {
File file = createXmlFile(FILE_PATH + FILE_SPE + FILE_NAME);
writeDoc(file, xml);
System.out.println(“文件已經創建:”);
System.out.println(“目錄:” + FILE_PATH + FILE_SPE + FILE_NAME);
System.out.println(“文件內容為:”);
System.out.println(xml);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 組裝XML內容
* @return
*/
private static String appendStr(){
StringBuffer sb = new StringBuffer();
sb.append(XML_TITLE).append(CHANGE_LINES);
sb.append(“book”).append(CHANGE_LINES);
sb.append(“name”).append(CHANGE_LINES);
sb.append(“《好玩》”).append(CHANGE_LINES);
sb.append(“/name”).append(CHANGE_LINES);
sb.append(“/book”).append(CHANGE_LINES);
return sb.toString();
}
/**
* 將內容寫入文件
* @param file
* @param str
*/
private static void writeDoc(File file,String str){
OutputStream out = null;
try {
out = new FileOutputStream(file);
out.write(str.getBytes());
}catch(Exception ex){
//
ex.printStackTrace();
}finally{
if(out != null){
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
* 創建文件
* @param path
* @return
* @throws IOException
*/
private static File createXmlFile(String path) throws IOException{
File file = new File(path);
if(!file.exists()){
file.createNewFile();
}
return file;
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/256741.html