package com.cloud.count.utils;
|
|
import com.cloud.count.model.People;
|
import org.dom4j.Document;
|
import org.dom4j.DocumentException;
|
import org.dom4j.DocumentHelper;
|
import org.dom4j.Element;
|
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
|
|
public class XmlUtil {
|
public static People xmlToPeople(String xmlStr){
|
Document doc = null;
|
People people = new People();
|
try {
|
doc = DocumentHelper.parseText(xmlStr);
|
Element rootElt = doc.getRootElement();
|
Element element1 = rootElt.element("ReportData").element("Report");
|
people.setDateStr(element1.attributeValue("Date"));
|
Element element2 = element1.element("Object").element("Count");
|
people.setEndTime(element2.attributeValue("EndTime"));
|
people.setStartTime(element2.attributeValue("StartTime"));
|
people.setEnters(Integer.parseInt(element2.attributeValue("Enters")));
|
people.setExits(Integer.parseInt(element2.attributeValue("Exits")));
|
people.setTimestamp(Long.parseLong(element2.attributeValue("UnixStartTime")));
|
// Element element1 = rootElt.element("Properties");
|
// Element element2 = rootElt.element("RTReport");
|
// Element element3 = element2.element("RTObject").element("RTCount");
|
// people.setDateStr(element2.attributeValue("Date"));
|
// people.setEndTime("");
|
// people.setStartTime("");
|
// people.setEnters(Integer.parseInt(element3.attributeValue("TotalEnters")));
|
// people.setExits(Integer.parseInt(element3.attributeValue("TotalExits")));
|
// people.setTimestamp(Long.parseLong(element1.elementText("TransmitTime")));
|
} catch (DocumentException e) {
|
e.printStackTrace();
|
}
|
|
return people;
|
}
|
|
public static People realTimeXmlToPeople(String xmlStr){
|
Document doc = null;
|
People people = new People();
|
try {
|
doc = DocumentHelper.parseText(xmlStr);
|
Element rootElt = doc.getRootElement();
|
Element element1 = rootElt.element("Properties");
|
Element element2 = rootElt.element("RTReport");
|
Element element3 = element2.element("RTObject").element("RTCount");
|
people.setDateStr(element2.attributeValue("Date"));
|
people.setEndTime("");
|
people.setStartTime("");
|
people.setEnters(Integer.parseInt(element3.attributeValue("TotalEnters")));
|
people.setExits(Integer.parseInt(element3.attributeValue("TotalExits")));
|
people.setTimestamp(Long.parseLong(element1.elementText("TransmitTime")));
|
} catch (DocumentException e) {
|
e.printStackTrace();
|
}
|
|
return people;
|
}
|
public static String toXmlStr(String str){
|
if(str==null) return "";
|
int start = str.indexOf("xml");
|
int end = str.lastIndexOf(">");
|
if(start<2||end<0)return "";
|
return str.substring(start-2,end+1);
|
}
|
public static void main(String[] args){
|
String str ="POST / HTTP/1.1\n" +
|
"Host: 192.168.1.158:2010\n" +
|
"Content-Length: 928\n" +
|
"Connection: Keep-Alive\n" +
|
"\n" +
|
"<?xml version=\"1.0\"?>\n" +
|
"<Metrics SiteId=\"Site ID\" Sitename=\"Site Name\" DeviceId=\"test154\" Devicename=\"Device Name\">\n" +
|
"<Properties>\n" +
|
"<Version>3</Version>\n" +
|
"<TransmitTime>1546402810</TransmitTime>\n" +
|
"<MacAddress>00:b0:9d:19:92:db</MacAddress>\n" +
|
"<IpAddress>192.168.1.7</IpAddress>\n" +
|
"<HostName>Cam-18453211</HostName>\n" +
|
"<HttpPort>80</HttpPort>\n" +
|
"<HttpsPort>443</HttpsPort>\n" +
|
"<Timezone>8</Timezone>\n" +
|
"<TimezoneName>(GMT 08:00) Beijing, Chongqing, Hong Kong, Urumqi</TimezoneName>\n" +
|
"<DST>0</DST>\n" +
|
"<HwPlatform>2500</HwPlatform>\n" +
|
"<SerialNumber>18453211</SerialNumber>\n" +
|
"<DeviceType>0</DeviceType>\n" +
|
"<SwRelease>4.0.2991.2157</SwRelease>\n" +
|
"</Properties>\n" +
|
"<ReportData Interval=\"1\">\n" +
|
"<Report Date=\"2018-12-31\">\n" +
|
"<Object Id=\"0\" DeviceId=\"test154\" Devicename=\"Device Name\" ObjectType=\"0\" Name=\"0\">\n" +
|
"<Count StartTime=\"03:46:00\" EndTime=\"03:47:00\" UnixStartTime=\"1546199160\" Enters=\"0\" Exits=\"0\" Status=\"0\"/>\n" +
|
"</Object>\n" +
|
"</Report>\n" +
|
"</ReportData>\n" +
|
"</Metrics>";
|
String sm=new SimpleDateFormat("HH:mm").format(new Date());
|
System.out.println(sm);
|
}
|
}
|