「java生成xml格式」如何生成xml格式

博主:adminadmin 2022-11-25 20:38:08 58

本篇文章给大家谈谈java生成xml格式,以及如何生成xml格式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何用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文件怎么有格式

需要jdom.jar和dom4j.jar这两个包

/**

* 将crash信息打包成xml格式

* @param hashMap 原始crash信息的hashmap形式

* @throws IOException

* @throws JDOMException

*/

public void BuildXMLDoc(HashMapString, String hashMap) throws IOException, JDOMException {

int size = hashMap.size();

Iterator iter = hashMap.entrySet().iterator();

Map.Entry entry;

String key;

String val;

int id = 1;

// 创建根节点 list;

Element root = new Element("phoneInfo");

// 根节点添加到文档中;

Document Doc = new Document(root);

// 此处 迭代器的遍历 可替换成循环遍历 数据库表的结果集操作;

while (iter.hasNext()) {

entry = (Map.Entry)iter.next();

key = (String)entry.getKey();

val = hashMap.get(key);

if (val == null || val.length() == 0)

{

val = "null";

}

// 创建节点 user;

Element elements = new Element("category");

// 给 user 节点添加属性 id;

elements.setAttribute("id", "" + id);

id ++;

// 给 user 节点添加子节点并赋值;

// new Element("name")中的 "name" 替换成表中相应字段,setText("xuehui")中 "xuehui

// 替换成表中记录值;

elements.addContent(new Element(key).setText(val));

// 给父节点list添加user子节点;

root.addContent(elements);

}

//带有缩进格式的xml 更美观

Format format = Format.getPrettyFormat();

XMLOutputter XMLOut = new XMLOutputter(format);

XMLOut.output(Doc, new FileOutputStream(FileUtil.CRASHPATH));

System.out.println("完成了文件写入");

}

上面虽然是对hashmap的遍历,但是对于其他容器的遍历形式不变,只是换成你需要的信息即可

下面是其他文章找到的

生成XML的时候,处理特殊字符

element.addContent(new CDATA("xml content"));

生成XML的时候,设置编码

XMLOutputter XMLOut = new XMLOutputter();

XMLOut.setEncoding("gb2312");

XMLOut.output(Doc, new FileOutputStream("test1.xml"));

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文件,并且将该文件压

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;

}

}

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"?

books

book

name哈里波特/name

price10/price

memo这是一本很好看的书。/memo

/book

book id="B02"

name三国演义/name

price10/price

memo四大名著之一。/memo

/book

book id="B03"

name水浒/name

price6/price

memo四大名著之一。/memo

/book

book id="B04"

name红楼/name

price5/price

memo四大名著之一。/memo

/book

/books

关于java生成xml格式和如何生成xml格式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。