⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 packunpackxml.java

📁 这是我们专业的课程设计
💻 JAVA
字号:
package XML;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

import Data.AdministratorCommandData;
import Data.ElevatorData;
import Data.FloorData;
import Data.InnerPassengerCommandData;
import Data.OuterPassengerCommandData;
import Data.StateData;
import ENUM.TYPE;

public class PackUnpackXML {

	public static Document PackBeAdmin() {// 两种情况 自带属性(数据的)和不带的
		Document doc = null;
		try {
			doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
					.newDocument();
			Element root = doc.createElement(TYPE.BE_ADMIN.name());
			doc.appendChild(root);
		} catch (Exception ex) {
			System.out.println(ex);
		}
		return doc;
	}

	public static Document PackEndVoice() {
		Document doc = null;
		try {
			doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
					.newDocument();
			Element root = doc.createElement(TYPE.END_VOICE.name());
			doc.appendChild(root);
		} catch (Exception ex) {
			System.out.println(ex);
		}
		return doc;
	}

	public static Document PackClose() {
		Document doc = null;
		try {
			doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
					.newDocument();
			Element root = doc.createElement(TYPE.CLOSE.name());
			doc.appendChild(root);
		} catch (Exception ex) {
			System.out.println(ex);
		}
		return doc;
	}

	public static TYPE UnPackFirstFolder(Document doc) {// 有些通过这一步便能解包出来
		// 有些需要再次解包
		Element root = doc.getDocumentElement();// 解包第一层 得出是什么类型
		return TYPE.valueOf(root.getNodeName());
	}

	public static Document PackGetFile(String ip) {// 两种情况 自带属性(数据的)和不带的
		Document doc = null;
		try {
			doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
					.newDocument();
			Element root = doc.createElement(TYPE.GET_FILE.name());
			root.setAttribute("GET_FILE", ip);
			doc.appendChild(root);
		} catch (Exception ex) {
			System.out.println(ex);
		}
		return doc;
	}

	public static String UnPackGetFile(Document doc) {
		Element root = doc.getDocumentElement();
		return root.getAttribute("GET_FILE");
	}

	public static Document PackBeginVoice(String ip) {//
		Document doc = null;
		try {
			doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
					.newDocument();
			Element root = doc.createElement(TYPE.BEGIN_VOICE.name());
			root.setAttribute("BEGIN_VOICE", ip);
			doc.appendChild(root);
		} catch (Exception ex) {
			System.out.println(ex);
		}
		return doc;
	}

	public static String UnPackBeginVoice(Document doc) {//
		Element root = doc.getDocumentElement();
		return root.getAttribute("BEGIN_VOICE");
	}

	public static Document PackAdminData(AdministratorCommandData data) {
		Document doc = null;
		try {
			doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
					.newDocument();
			Element root = doc.createElement(TYPE.ADMIN_DATA.name());
			root.setAttribute("ELE", data.elevator + "");
			root.setAttribute("BT", data.button + "");
			doc.appendChild(root);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return doc;
	}

	public static AdministratorCommandData UnPackAdminData(Document doc) {
		AdministratorCommandData ret = new AdministratorCommandData();
		try {
			Element root = doc.getDocumentElement();
			int ele = Integer.parseInt(root.getAttribute("ELE"));
			ret.elevator = ele;
			int bt = Integer.parseInt(root.getAttribute("BT"));
			ret.button = bt;
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return ret;
	}

	public static Document PackInnerPassengerData(InnerPassengerCommandData data) {
		Document doc = null;
		try {
			doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
					.newDocument();
			Element root = doc.createElement(TYPE.IN_DATA.name());
			root.setAttribute("ELE", data.elevator + "");
			root.setAttribute("BT", data.button + "");
			root.setAttribute("FLR", data.floor + "");
			doc.appendChild(root);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return doc;
	}

	public static InnerPassengerCommandData UnPackInnerPassengerData(
			Document doc) {
		InnerPassengerCommandData ret = new InnerPassengerCommandData();
		Element root = doc.getDocumentElement();
		int ele = Integer.parseInt(root.getAttribute("ELE"));
		ret.elevator = ele;
		int bt = Integer.parseInt(root.getAttribute("BT"));
		ret.button = bt;
		int flr = Integer.parseInt(root.getAttribute("FLR"));
		ret.floor = flr;
		return ret;
	}

	public static Document PackOuterPassengerData(OuterPassengerCommandData data) {
		Document doc = null;
		try {
			doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
					.newDocument();
			Element root = doc.createElement(TYPE.OUT_DATA.name());
			root.setAttribute("BT", data.button + "");
			root.setAttribute("FLR", data.floor + "");
			doc.appendChild(root);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return doc;
	}

	public static OuterPassengerCommandData UnPackOuterPassengerData(
			Document doc) {
		OuterPassengerCommandData ret = new OuterPassengerCommandData();
		Element root = doc.getDocumentElement();
		int bt = Integer.parseInt(root.getAttribute("BT"));
		ret.button = bt;
		int flr = Integer.parseInt(root.getAttribute("FLR"));
		ret.floor = flr;
		return ret;
	}

	public static Element PackFloorData(Document doc, FloorData data) {// Element
		// 不能离开doc单独存在
		Element ret = null;
		try {
			ret = doc.createElement(FloorData.class.getSimpleName());
			StringBuilder sb = new StringBuilder();
			for (int i = 0; i < data.upLight.length; i++) {
				sb.append(data.upLight[i]);
			}
			ret.setAttribute("upLight", sb.toString());
			sb = new StringBuilder();
			for (int i = 0; i < data.downLight.length; i++) {
				sb.append(data.downLight[i]);
			}
			ret.setAttribute("downLight", sb.toString());
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return ret;
	}

	public static FloorData UnPackFloorData(Element node) {
		FloorData ret = new FloorData();
		String s = node.getAttribute("upLight");
		for (int i = 0; i < s.length(); i++) {
			ret.upLight[i] = Integer.parseInt(s.charAt(i) + "");
		}
		s = node.getAttribute("downLight");
		for (int i = 0; i < s.length(); i++) {
			ret.downLight[i] = Integer.parseInt(s.charAt(i) + "");
		}
		return ret;
	}

	public static Element PackElevatorData(Document doc, ElevatorData data) {
		Element ret = doc.createElement(ElevatorData.class.getSimpleName());
		ret.setAttribute("FLR", data.floor + "");
		ret.setAttribute("DIR", data.direction + "");
		ret.setAttribute("OPT", data.openedPercent + "");
		StringBuilder sb = new StringBuilder();
		for (int i = 0; i < data.light.length; i++) {
			sb.append(data.light[i]);
		}
		ret.setAttribute("LIT", sb.toString());
		return ret;
	}

	public static ElevatorData UnPackElevatorData(Element node) {
		ElevatorData ret = new ElevatorData();
		int flr = Integer.parseInt(node.getAttribute("FLR"));
		ret.floor = flr;
		int dir = Integer.parseInt(node.getAttribute("DIR"));
		ret.direction = dir;
		double opt = Double.parseDouble(node.getAttribute("OPT"));
		ret.openedPercent = opt;
		String s = node.getAttribute("LIT");
		for (int i = 0; i < s.length(); i++) {
			ret.light[i] = Integer.parseInt(s.charAt(i) + "");
		}
		return ret;
	}

	public static Document PackStateData(StateData data) {
		Document doc = null;
		try {
			doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
					.newDocument();
			Element root = doc.createElement(TYPE.ALL_DATA.name());
			for (int i = 0; i < data.elevator.length; i++) {
				root.appendChild(PackElevatorData(doc, data.elevator[i]));
			}
			root.appendChild(PackFloorData(doc, data.floor));
			doc.appendChild(root);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return doc;
	}

	public static StateData UnPackStateData(Document doc) {
		StateData ret = new StateData();
		Element root = doc.getDocumentElement();
		Element node = (Element) root.getFirstChild();
		for (int i = 0; i < ret.elevator.length; i++) {
			ret.elevator[i] = PackUnpackXML.UnPackElevatorData(node);
			node = (Element) node.getNextSibling();
		}
		ret.floor = PackUnpackXML.UnPackFloorData(node);
		return ret;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -