「java生成xml格式」如何生成xml格式
本篇文章给大家谈谈java生成xml格式,以及如何生成xml格式对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、如何用java代码创建xml文件
- 2、java 生成xml文件怎么有格式
- 3、java怎么将数据导出为xml文件
- 4、如何用java生成一个XML文件,并且将该文件压
- 5、JAVA 生成xml格式,具体格式如下,请问JAVA方法怎么写
如何用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格式的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-25,除非注明,否则均为
原创文章,转载请注明出处。