您的位置:

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;

}

}