<span style="color: #0000ff;">import<span style="color: #000000;"> javax.xml.transform.OutputKeys;
<span style="color: #0000ff;">import<span style="color: #000000;"> javax.xml.transform.Result;
<span style="color: #0000ff;">import<span style="color: #000000;"> javax.xml.transform.Transformer;
<span style="color: #0000ff;">import<span style="color: #000000;"> javax.xml.transform.TransformerConfigurationException;
<span style="color: #0000ff;">import<span style="color: #000000;"> javax.xml.transform.sax.SAXTransformerFactory;
<span style="color: #0000ff;">import<span style="color: #000000;"> javax.xml.transform.sax.TransformerHandler;
<span style="color: #0000ff;">import<span style="color: #000000;"> javax.xml.transform.stream.StreamResult;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.xml.sax.SAXException;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.xml.sax.helpers.AttributesImpl;
<span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> SAXCreateTest {
<span style="color: #0000ff;">public <span style="color: #0000ff;">void<span style="color: #000000;"> createXML() {
SAXTransformerFactory factory =<span style="color: #000000;"> (SAXTransformerFactory) SAXTransformerFactory.newInstance();
<span style="color: #0000ff;">try<span style="color: #000000;"> {
TransformerHandler handler =<span style="color: #000000;"> factory.newTransformerHandler();
Transformer transformer =<span style="color: #000000;"> handler.getTransformer();
<span style="color: #008000;">//<span style="color: #008000;"> 设置字符编码
transformer.setOutputProperty(OutputKeys.ENCODING,"UTF-8"<span style="color: #000000;">);
<span style="color: #008000;">//<span style="color: #008000;"> 设置换行
transformer.setOutputProperty(OutputKeys.INDENT,"yes"<span style="color: #000000;">);
File file = <span style="color: #0000ff;">new File("books.xml"<span style="color: #000000;">);
<span style="color: #0000ff;">if (!<span style="color: #000000;">file.exists()) file.createNewFile();
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 创建Result对象 </span>
Result result = <span style="color: #0000ff;">new</span> StreamResult(<span style="color: #0000ff;">new</span><span style="color: #000000;"> FileOutputStream(file));
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 和Handler对象相关联</span>
<span style="color: #000000;"> handler.setResult(result);
<span style="color: #008000;">//<span style="color: #008000;"> 利用handler对XML文件内容进行编写
<span style="color: #008000;">//<span style="color: #008000;"> 打开document
<span style="color: #000000;"> handler.startDocument();
<span style="color: #008000;">//<span style="color: #008000;"> 如果没有属性就直接new就可以了
AttributesImpl attr = <span style="color: #0000ff;">new<span style="color: #000000;"> AttributesImpl();
handler.startElement("","","bookStore"<span style="color: #000000;">,attr);
attr.clear();
attr.addAttribute(</span>"","category","e-sports"<span style="color: #000000;">);
handler.startElement(</span>"","book"<span style="color: #000000;">,attr);
attr.clear();
handler.startElement(</span>"","title"<span style="color: #000000;">,attr);
handler.characters(</span>"全职高手".toCharArray(),"全职高手"<span style="color: #000000;">.length());
handler.endElement(</span>"","title"<span style="color: #000000;">);
attr.clear();
handler.startElement(</span>"","author"<span style="color: #000000;">,attr);
handler.characters(</span>"蝴蝶蓝".toCharArray(),"蝴蝶蓝"<span style="color: #000000;">.length());
handler.endElement(</span>"","author"<span style="color: #000000;">);
handler.endElement(</span>"","book"<span style="color: #000000;">);
handler.endElement(</span>"","bookStore"<span style="color: #000000;">);
handler.endDocument();
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (TransformerConfigurationException e) {
e.printStackTrace();
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) {
e.printStackTrace();
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (SAXException e) {
</span><span style="color: #008000;">//</span><span style="color: #008000;"> TODO Auto-generated catch block</span>
<span style="color: #000000;"> e.printStackTrace();
}
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) {
</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> SAXCreateTest().createXML();
}
}
3.通过 DOM4J 方式生成 XML 文档
<span style="color: #0000ff;">import<span style="color: #000000;"> org.dom4j.Document;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.dom4j.DocumentHelper;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.dom4j.Element;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.dom4j.io.OutputFormat;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.dom4j.io.XMLWriter;
<span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> DOM4JCraeteTest {
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> create() {
Document document </span>=<span style="color: #000000;"> DocumentHelper.createDocument();
Element bookStore </span>= document.addElement("bookStore"<span style="color: #000000;">);
Element book </span>= bookStore.addElement("book"<span style="color: #000000;">);
book.addAttribute(</span>"category","e-sport"<span style="color: #000000;">);
Element title </span>= book.addElement("title"<span style="color: #000000;">);
title.addText(</span>"全职高手"<span style="color: #000000;">);
Element author </span>= book.addElement("author"<span style="color: #000000;">);
author.addText(</span>"蝴蝶蓝"<span style="color: #000000;">);
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 设置格式</span>
OutputFormat format =<span style="color: #000000;"> OutputFormat.createPrettyPrint();
format.setEncoding(</span>"utf-8"<span style="color: #000000;">);
File file </span>= <span style="color: #0000ff;">new</span> File("books.xml"<span style="color: #000000;">);
XMLWriter writer </span>= <span style="color: #0000ff;">null</span><span style="color: #000000;">;
</span><span style="color: #008000;">//</span><span style="color: #008000;"> 设置是否转义 默认为true</span>
<span style="color: #0000ff;">try</span><span style="color: #000000;"> {
writer </span>= <span style="color: #0000ff;">new</span> XMLWriter(<span style="color: #0000ff;">new</span><span style="color: #000000;"> FileOutputStream(file),format);
writer.setEscapeText(</span><span style="color: #0000ff;">false</span><span style="color: #000000;">);
writer.write(document);
writer.close();
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) {
e.printStackTrace();
}
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) {
</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> DOM4JCraeteTest().create();
}
}
4.通过 JDOM 方式生成 XML 文档
<span style="color: #0000ff;">import<span style="color: #000000;"> org.jdom2.Document;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.jdom2.Element;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.jdom2.output.Format;
<span style="color: #0000ff;">import<span style="color: #000000;"> org.jdom2.output.XMLOutputter;
<span style="color: #0000ff;">public <span style="color: #0000ff;">class<span style="color: #000000;"> JDOMCreateTest {
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> create() {
Element bookStore </span>= <span style="color: #0000ff;">new</span> Element("bookStore"<span style="color: #000000;">);
Document document </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> Document(bookStore);
Element book </span>= <span style="color: #0000ff;">new</span> Element("book"<span style="color: #000000;">);
bookStore.addContent(book);
book.setAttribute(</span>"category","e-sport"<span style="color: #000000;">);
Element title </span>= <span style="color: #0000ff;">new</span> Element("title"<span style="color: #000000;">);
title.setText(</span>"全职高手"<span style="color: #000000;">);
book.addContent(title);
Element author </span>= <span style="color: #0000ff;">new</span> Element("author"<span style="color: #000000;">);
book.addContent(author);
Format format </span>=<span style="color: #000000;"> Format.getCompactFormat();
format.setIndent(</span>" "<span style="color: #000000;">);
format.setEncoding(</span>"GBK"<span style="color: #000000;">);
XMLOutputter outputter </span>= <span style="color: #0000ff;">new</span><span style="color: #000000;"> XMLOutputter(format);
</span><span style="color: #0000ff;">try</span><span style="color: #000000;"> {
outputter.output(document,</span><span style="color: #0000ff;">new</span> FileOutputStream(<span style="color: #0000ff;">new</span> File("books.xml"<span style="color: #000000;">)));
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (FileNotFoundException e) {
e.printStackTrace();
} </span><span style="color: #0000ff;">catch</span><span style="color: #000000;"> (IOException e) {
e.printStackTrace();
}
}
</span><span style="color: #0000ff;">public</span> <span style="color: #0000ff;">static</span> <span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) {
</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> JDOMCreateTest().create();
}
}
生成文件效果
全职高手
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!