首页 > 代码库 > Java生成XML文件
Java生成XML文件
《Java眼中的XML ---文件写入》
四种方法用Java生成一个XML文件。
1.通过DOM方式生成XML文档
import java.io.File;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.parsers.ParserConfigurationException;import javax.xml.transform.OutputKeys;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.TransformerException;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;public class DomCreateTest { public void createXML() { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); // XML文件中第一行StandAlone表示该XML文件是否独立设置为yes为默认值 且不显示 // 表示独立没有外部文件为其服务 设置为no表示外部有其他文件为其服务 document.setXmlStandalone(true); Element bookStore = document.createElement("bookStore"); Element book = document.createElement("book"); Element title = document.createElement("title"); Element author = document.createElement("author"); title.setTextContent("全职高手"); author.setTextContent("蝴蝶蓝"); book.appendChild(title); book.appendChild(author); book.setAttribute("category", "e-sports"); bookStore.appendChild(book); document.appendChild(bookStore); // 上面已经建好dom树 要将dom树转为xml文本 TransformerFactory tff = TransformerFactory.newInstance(); Transformer transformer = tff.newTransformer(); // 生成的xml文件格式 换行 transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.transform(new DOMSource(document), new StreamResult(new File("books.xml"))); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } } public static void main(String[] args) { new DomCreateTest().createXML(); } }
2.通过 SAX 方式生成 XML 文档
import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import javax.xml.transform.OutputKeys;import javax.xml.transform.Result;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerConfigurationException;import javax.xml.transform.sax.SAXTransformerFactory;import javax.xml.transform.sax.TransformerHandler;import javax.xml.transform.stream.StreamResult;import org.xml.sax.SAXException;import org.xml.sax.helpers.AttributesImpl;public class SAXCreateTest { public void createXML() { SAXTransformerFactory factory = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); try { TransformerHandler handler = factory.newTransformerHandler(); Transformer transformer = handler.getTransformer(); // 设置字符编码 transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); // 设置换行 transformer.setOutputProperty(OutputKeys.INDENT, "yes"); File file = new File("books.xml"); if (!file.exists()) file.createNewFile(); // 创建Result对象 Result result = new StreamResult(new FileOutputStream(file)); // 和Handler对象相关联 handler.setResult(result); // 利用handler对XML文件内容进行编写 // 打开document handler.startDocument(); // 如果没有属性就直接new就可以了 AttributesImpl attr = new AttributesImpl(); handler.startElement("", "", "bookStore", attr); attr.clear(); attr.addAttribute("", "", "category", "", "e-sports"); handler.startElement("", "", "book", attr); attr.clear(); handler.startElement("", "", "title", attr); handler.characters("全职高手".toCharArray(), 0, "全职高手".length()); handler.endElement("", "", "title"); attr.clear(); handler.startElement("", "", "author", attr); handler.characters("蝴蝶蓝".toCharArray(), 0, "蝴蝶蓝".length()); handler.endElement("", "", "author"); handler.endElement("", "", "book"); handler.endElement("", "", "bookStore"); handler.endDocument(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { new SAXCreateTest().createXML(); }}
3.通过 DOM4J 方式生成 XML 文档
import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.XMLWriter;public class DOM4JCraeteTest { public void create() { Document document = DocumentHelper.createDocument(); Element bookStore = document.addElement("bookStore"); Element book = bookStore.addElement("book"); book.addAttribute("category", "e-sport"); Element title = book.addElement("title"); title.addText("全职高手"); Element author = book.addElement("author"); author.addText("蝴蝶蓝"); // 设置格式 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); File file = new File("books.xml"); XMLWriter writer = null; // 设置是否转义 默认为true try { writer = new XMLWriter(new FileOutputStream(file), format); writer.setEscapeText(false); writer.write(document); writer.close(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { new DOM4JCraeteTest().create(); }}
4.通过 JDOM 方式生成 XML 文档
import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.output.Format;import org.jdom2.output.XMLOutputter;public class JDOMCreateTest { public void create() { Element bookStore = new Element("bookStore"); Document document = new Document(bookStore); Element book = new Element("book"); bookStore.addContent(book); book.setAttribute("category", "e-sport"); Element title = new Element("title"); title.setText("全职高手"); book.addContent(title); Element author = new Element("author"); book.addContent(author); Format format = Format.getCompactFormat(); format.setIndent(" "); format.setEncoding("GBK"); XMLOutputter outputter = new XMLOutputter(format); try { outputter.output(document, new FileOutputStream(new File("books.xml"))); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { new JDOMCreateTest().create(); }}
生成文件效果
<?xml version="1.0" encoding="GBK"?><bookStore> <book category="e-sport"> <title>全职高手</title> <author /> </book></bookStore>
Java生成XML文件
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。