liuxiaolong
2019-11-07 2f3e3ec2c0cad87eab8a6d170caffc06a4e11c2d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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);
     }
}