JAVA 写XML File

本人不善言谈,直接贴出代码,希望给有需要的朋友一些帮助。

import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

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.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 OperationXmlFile {

	public static Document createDocument() {
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder;
			builder = factory.newDocumentBuilder();
			return builder.newDocument();
		} catch (ParserConfigurationException e) {
			e.printStackTrace();
			return null;
		}
	}

	public static Element addChildElement(Element parentElement,
			String elementName, String nodeValue, Document document) {
		Element el = document.createElement(elementName);
		el.appendChild(document.createTextNode(nodeValue));
		if (parentElement != null)
			parentElement.appendChild(el);
		else
			document.appendChild(el);
		return el;
	}

	public static void addAttribute(Element element, String propetyName,
			String propertyValue) {
		element.setAttribute(propetyName, propertyValue);
	}

	public static void toSave(Document document, String filePath) {
		try {
			TransformerFactory tf = TransformerFactory.newInstance();
			Transformer transformer = tf.newTransformer();
			DOMSource source = new DOMSource(document);
			transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
			ByteArrayOutputStream buf = new ByteArrayOutputStream();
			StreamResult result = new StreamResult(buf);
			transformer.transform(source, result);
			FileOutputStream file = new FileOutputStream(filePath);
			file.write(buf.toByteArray());
			transformer.transform(source, result);
		} catch (TransformerException mye) {
			mye.printStackTrace();
		} catch (IOException exp) {
			exp.printStackTrace();
		}
	}

	public static void main(String[] args) {
		Document document = createDocument();
		Element el = OperationXmlFile.addChildElement(null, "hehe", "",
				document);
		Element elchi = OperationXmlFile.addChildElement(el, "haha", "", document);
			OperationXmlFile.addChildElement(elchi, "haha", "ggg", document);
		OperationXmlFile.addChildElement(el, "haha2", "haha2", document);
		OperationXmlFile.toSave(document, "E:/aa.xml");
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值