java生成xml,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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-15 12:42
下一篇 2024-12-15 12:42

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論