java 导出本地xml文件_java 导出xml文件的四种方式

本文介绍了Java中四种创建XML文件的方法:DOM、SAX、DOM4J和JDOM。通过示例代码详细展示了如何使用这些方法生成XML文件,包括设置属性、添加元素等内容。
摘要由CSDN通过智能技术生成

public class CreateXML {

//DOM方式创建XML文件

public void DOMcreateXML() {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

DocumentBuilder db = null;

try {

db = factory.newDocumentBuilder();

Document document = db.newDocument();

document.setXmlStandalone(true);

Element bookstore = document.createElement("bookstore");

Element book = document.createElement("book");

Element name = document.createElement("name");

name.setTextContent("");

book.setAttribute("id", "three");

book.appendChild(name);

bookstore.appendChild(book);

document.appendChild(bookstore);

TransformerFactory tff = TransformerFactory.newInstance();

Transformer tf = tff.newTransformer();

tf.setOutputProperty(OutputKeys.INDENT, "yes");

tf.transform(new DOMSource(document), new StreamResult(new File("res/books2.xml")));

}catch (ParserConfigurationException e1) {

e1.printStackTrace();

}catch (TransformerConfigurationException e) {

e.printStackTrace();

} catch (TransformerException e) {

e.printStackTrace();

}

}

//SAX生成XML文件

public void SAXCreateXML() {

SAXTransformerFactory tff = (SAXTransformerFactory)SAXTransformerFactory.newInstance();

try {

TransformerHandler handler = tff.newTransformerHandler();

Transformer tf = handler.getTransformer();

tf.setOutputProperty(OutputKeys.ENCODING, "UTF-8");

tf.setOutputProperty(OutputKeys.INDENT, "yes");

File f = new File("res/newbooks.xml");

if(!f.exists()) {

f.createNewFile();

}

Result result = new StreamResult(new FileOutputStream(f));

handler.setResult(result);

handler.startDocument();

AttributesImpl attr = new AttributesImpl();

handler.startElement("", "", "bookstore",attr);

attr.clear();

attr.addAttribute("", "", "id", "", "one");

handler.startElement("", "", "book", attr);

attr.clear();

handler.startElement("", "", "name", attr);

handler.characters(new char[]{''}, 0, "".length());

handler.endElement("", "", "name");

handler.endElement("", "", "book");

handler.endElement("", "", "bookstroe");

handler.endDocument();

} catch (TransformerConfigurationException e) {

e.printStackTrace();

} catch (FileNotFoundException e) {

e.printStackTrace();

}catch (IOException e) {

e.printStackTrace();

} catch (SAXException e) {

e.printStackTrace();

}

}

//DOM4J创建XML

public void DOM4JCreateXML() {

org.dom4j.Document document = DocumentHelper.createDocument();

org.dom4j.Element rss = document.addElement("rss");

rss.addAttribute("version", "2.0");

org.dom4j.Element channel = rss.addElement("channel");

org.dom4j.Element title = channel.addElement("title");

title.setText("国内新闻");

OutputFormat format = OutputFormat.createPrettyPrint();

//生成文件

File file = new File("res/rssbooks.xml");

XMLWriter writer;

try {

writer = new XMLWriter(new FileOutputStream(file),format);

writer.setEscapeText(false);

writer.write(document);

writer.close();

} catch (UnsupportedEncodingException e1) {

e1.printStackTrace();

} catch (FileNotFoundException e1) {

e1.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

//JDOM创建XML

public void JDOMCreateXML() {

org.jdom2.Element rss = new org.jdom2.Element("rss");

rss.setAttribute("version", "2.0");

//生成一个document对象

org.jdom2.Document document = new org.jdom2.Document(rss);

org.jdom2.Element channel = new org.jdom2.Element("channel");

rss.addContent(channel);

org.jdom2.Element title = new org.jdom2.Element("title");

title.setText("国内新闻");

channel.addContent(title);

//创建XMLoutputer对象

Format format = Format.getCompactFormat();

format.setIndent("");

format.setEncoding("utf-8");

XMLOutputter outputer = new XMLOutputter(format);

//利用outputer将document对象转换成xml文档

try {

outputer.output(document, new FileOutputStream(new File("res/jdom.xml")));

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值