您好,欢迎来到欧得旅游网。
搜索
您的当前位置:首页java生成XML

java生成XML

来源:欧得旅游网
package com.Action;

import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
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;

import com.Bean.Edge;
import com.Bean.Node;

public class Test {
	public static void main(String[] args) {
		String outputPath = "src/topu.xml";
		generateXml(outputPath);
	}

	public static void generateXml(String outputPath) {
		try {
			String[] contain = { "老大", "老二", "老三", "老四", "老五", "老六", "老七",
					"老八", "老九", "老么" };
			int[] level = { 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3 };
			int[] num = { 3, 2, 2, 5, 1, 1, 1, 1, 1, 1 };
			Node[] node = new Node[10];
			for (int i = 0; i < 10; i++) {
				node[i] = new Node();
				node[i].setId(i);
				node[i].setContain(contain[i]);
				node[i].setNum(num[i]);
				node[i].setLevel(level[i]);
			}

			Edge[] edge = new Edge[10];
			int[] fromID = { 0, 0, 0, 1, 2, 3, 3, 3, 3 ,0};
			for (int i = 0; i < 10; i++) {
				edge[i] = new Edge();
				edge[i].setId(i);
				edge[i].setFromID(fromID[i]);
				edge[i].setToID(i + 1);
				edge[i].setValue(100);
			}
			List<Node> listNode = Arrays.asList(node);// 将数组转换成List
			List<Edge> listEdge=Arrays.asList(edge);
			Document doc = generateXml(listNode,listEdge);// 生成XML文件
			outputXml(doc, outputPath);// 将文件输出到指定的路径
		} catch (Exception e) {
			System.err.println("出现异常");
		}
	}

	/**
	 * 将XML文件输出到指定的路径
	 * 
	 * @param doc
	 * @param fileName
	 * @throws Exception
	 */
	private static void outputXml(Document doc, String fileName)
			throws Exception {
		TransformerFactory tf = TransformerFactory.newInstance();
		Transformer transformer = tf.newTransformer();
		DOMSource source = new DOMSource(doc);
		transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
		transformer.setOutputProperty(OutputKeys.INDENT, "yes");// 设置文档的换行与缩进
		PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));
		StreamResult result = new StreamResult(pw);
		transformer.transform(source, result);
		System.out.println("生成XML文件成功!");
	}

	/**
	 * 生成XML文件
	 * 
	 * @param list
	 * @return
	 */
	public static Document generateXml(List<Node> list,List<Edge> list2) {
		Document doc = null;
		Element root = null;
		try {
			DocumentBuilderFactory factory = DocumentBuilderFactory
					.newInstance();
			DocumentBuilder builder = factory.newDocumentBuilder();
			doc = builder.newDocument();
			root = doc.createElement("topu");
			doc.appendChild(root);
		} catch (Exception e) {
			e.printStackTrace();
			return null;// 如果出现异常,则不再往下执行
		}

		int len = list.size();
		Element element;
		for (int i = 0; i < len; i++) {
			Node node = list.get(i);
			element = doc.createElement("Node");
			element.setAttribute("id", "" + node.getId());
			element.setAttribute("contain", node.getContain());
			element.setAttribute("num", String.valueOf(node.getNum()));
			element.setAttribute("level", String.valueOf(node.getLevel()));
			root.appendChild(element);
		}
		for (int i = 0; i < list2.size(); i++) {
			Edge edge = list2.get(i);
			element = doc.createElement("Edge");
			element.setAttribute("id", "" + edge.getId());
			element.setAttribute("fromID",String.valueOf(edge.getFromID()));
			element.setAttribute("toID", String.valueOf(edge.getToID()));
			element.setAttribute("value", String.valueOf(edge.getValue()));
			root.appendChild(element);
		}
		return doc;
	}
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ovod.cn 版权所有 湘ICP备2023023988号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务