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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务