Web Spring 전정프

java 자바 API xml 파싱 parsing 하는 방법

zeuz 2020. 12. 18. 13:41
반응형
String url ="요청 url";		
try {
	DocumentBuilderFactory dbFactoty = DocumentBuilderFactory.newInstance();
	DocumentBuilder dBuilder = dbFactoty.newDocumentBuilder();
	Document doc = dBuilder.parse(url);

	Map<String,String> result =  getNodeItems(doc.getElementsByTagName("필요한 값들의 부모노드명"));

} catch (Exception e) {
	e.printStackTrace();
}

 

public Map<String,String> getNodeItems(NodeList nList){
	Map<String,String> returnMap = new HashMap<String,String>();

	for(int i=0; i<nList.getLength(); i++){
		NodeList cNList = nList.item(i).getChildNodes();
		for(int j = 0;j<cNList.getLength(); j++){
			NodeList cCNList = cNList.item(j).getChildNodes();
            
			if(cCNList != null && cCNList.item(0) != null && cCNList.item(0).hasChildNodes() ){
			//자식노드가 있을경우
				
				for(int k = 0; k<cCNList.getLength(); k++){
					System.out.println(cCNList.item(k).getNodeName() +":"+ cCNList.item(k).getTextContent());
					returnMap.put(cCNList.item(k).getNodeName(), cCNList.item(k).getTextContent());
				}
			}else{
            		//자식노드가 없을경우

				System.out.println(cNList.item(j).getNodeName() +":"+ cNList.item(j).getTextContent());
				returnMap.put(cNList.item(j).getNodeName(), cNList.item(j).getTextContent());
			}

		}	

	}
	return returnMap;
}
반응형