📄 packunpackxml.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 + -