[JSP] XML 파싱하기...
<%@ 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();
}
%>
<%@ 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();
}
%>