-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathXmlParsing_total.java
71 lines (57 loc) · 2.73 KB
/
XmlParsing_total.java
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
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XmlParsing_total {
private static String getTagValue(String tag, Element eElement) {
try{
String result = eElement.getElementsByTagName(tag).item(0).getTextContent();
return result;
} catch(NullPointerException e){
return "NullPointer Error";
} catch(Exception e){
return "Other Error";
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd", Locale.KOREA);
String today = sdf.format(date);
String startCreateDt = "20210401"; //tempdate
String endCreateDt = today;
try {
String ServiceKey = "rl%2B8bqQgAXlgml1MRoJIqGc1YcMKT31NQdmV2graSOPOnxBBdSAAtnKp%2F7XR54yLXVpvKhTnv7UhUw%2FTBjqw9Q%3D%3D";
String url = "http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19InfStateJson?serviceKey="
+ ServiceKey + "&pageNo=1&numOfRows=1&startCreateDt="+startCreateDt+"&endCreateDt="+endCreateDt;
DocumentBuilderFactory dbFactoty = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactoty.newDocumentBuilder();
Document doc = dBuilder.parse(url);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("item");
DecimalFormat dc = new DecimalFormat("###,###,###,###,###");
for(int temp = 0; temp < nList.getLength(); temp++){
Node nNode = nList.item(temp);
if(nNode.getNodeType() == Node.ELEMENT_NODE){
Element eElement = (Element) nNode;
System.out.println("######################");
System.out.println("기준일 : " + getTagValue("stateDt", eElement));
System.out.println("확진자 수 : " + dc.format(Integer.parseInt(getTagValue("decideCnt", eElement))));
System.out.println("검사진행 수 : " + dc.format(Integer.parseInt(getTagValue("examCnt", eElement))));
System.out.println("사망자 수 : " + dc.format(Integer.parseInt(getTagValue("deathCnt", eElement))));
System.out.println("결과 음성 수 : " + dc.format(Integer.parseInt(getTagValue("resutlNegCnt", eElement))));
System.out.println("누적검사 수 : " + dc.format(Integer.parseInt(getTagValue("accExamCnt", eElement))));
System.out.println("누적환진률 : " + getTagValue("accDefRate", eElement));
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}