홈 · 개발 참고자료

개발 참고자료

[JSP] XML 파싱하기...

작성자
관리자
작성일
2016-11-03
조회
10940
분류
기타
<%@ page contentType="text/html;charset=euc-kr"%>


<%@ page import="com.ti.dcic.*"%>
<%@ page import="org.w3c.dom.*"%>
<%@ page import="javax.xml.parsers.*"%>
<%@ page import="java.util.*"%>



시작 ==========================</br>
<%
String file_path = com.ti.dcic.DcicProp.get("biz.staff.xml_path");
String strUrl = "http://www.Lop.co.kr/eng/" + file_path ;
String[] fieldNames ={"POSITION", "NAME", "E-MAIL"};
String[] ls_position;
String[] ls_name;
String[] ls_email;


String name;
String sTemp;


out.println("strUrl=====================</br>");
out.println(strUrl);
out.println("</br>=====================</br>");



%>


<%
//XML 데이터를 호출할 URL
String url = "http://www.Lop.co.kr/eng/" + file_path ;

//각 게시물하나에 해당하는 XML 노드를 담을 리스트
//ArrayList<Map> pubList = new ArrayList<Map>();

try {
//XML파싱 준비
DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
DocumentBuilder b = f.newDocumentBuilder();
//위에서 구성한 URL을 통해 XMl 파싱 시작
Document doc = b.parse(url);
doc.getDocumentElement().normalize();


out.println("doc=====================</br>");
out.println(doc);
out.println("</br>=====================</br>");



//서버에서 응답한 XML데이터를 publication(발행문서 1개 해당)태그로 각각 나눔(파라미터로 요청한 size항목의 수만큼)
NodeList items = doc.getElementsByTagName("MEMBER");


ls_position = new String[items.getLength()];
ls_name = new String[items.getLength()];
ls_email = new String[items.getLength()];


//for 루프시작
for (int i = 0; i < items.getLength(); i++) {


out.println("for=");
out.println(i);
out.println("</br>");



//i번째 publication 태그를 가져와서
Node n = items.item(i);
//노드타입을 체크함, 노드 타입이 엘리먼트가 아닐경우에만 수행
if (n.getNodeType() != Node.ELEMENT_NODE)
continue;

Element e = (Element) n;
HashMap pub = new HashMap();


//for 루프 시작
for (int j = 0; j < fieldNames.length; j++) {


name = fieldNames[j];


NodeList titleList = e.getElementsByTagName(name);
Element titleElem = (Element) titleList.item(0);


Node titleNode = titleElem.getChildNodes().item(0);


if (name == "POSITION") ls_position[i] = titleNode.getNodeValue();
if (name == "NAME") ls_name[i] = titleNode.getNodeValue();
if (name == "E-MAIL") ls_email[i] = titleNode.getNodeValue();
}


}


for (int i = 0; i < ls_position.length; i++) {


out.println("</br>");
out.println("ls_position=");
out.println(ls_position[i]);
out.println("</br>");


}


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





%>