1. post방식으로 url에 접속하여 결과 xml을 가져옴
public static String connectXML(String DocID){
URL url = null;
StringBuffer resp = new StringBuffer();
try {
url = new URL("http://어쩌구 저쩌구");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
con.setDoOutput(true);
con.setDoInput(true);
con.setUseCaches(false);
con.setRequestMethod("POST");
StringBuffer sb = new StringBuffer();
sb.append("DocID="+DocID); //데이터 담는곳
PrintWriter pw = new PrintWriter(new OutputStreamWriter(con.getOutputStream(),"utf-8"));
pw.write(sb.toString());
pw.flush();
int resCode = 0; // RMS와의 연결 응답값
resCode = con.getResponseCode(); //연결됨
if(resCode < 400){ // 연결이 성공적일때
getLog("연결 성공");
String line = "";
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(),"utf-8"));
while((line=br.readLine())!=null){
resp.append(changeChar(line)); //changeChar메소드:특수문자로 들어온문자를 변환하는 메소드
}
pw.close();
br.close();
}else{
getLog("연결 실패:"+resCode);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return resp.toString(); //결과 xml을 string으로 변환
}
2. String으로 받은 XML 문서를 파싱
public static void changeXML(String str,CardDetails cd){
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance ( ) ;
DocumentBuilder db = dbf.newDocumentBuilder ( ) ;
InputSource inputsource = new InputSource(new StringReader(str));
Document doc = db.parse(inputsource);
//ROOT노드 구하기
Element root = doc.getDocumentElement();
System.out.println("ROOT : "+root.getNodeName());
NodeList list = XPathAPI.selectNodeList(root.getFirstChild(),"/(루트노드)/(하위노드1)/(하위노드2)"); //가져올 노드
for(int i=0;i<list.getLength();i++){
Node n = list.item(i);
System.out.println(n.getNodeName()); //하위노드2 노드안의 서브 노드 가져와서 출력
System.out.println(n.getFirstChild().getNodeVal!ue()); //하위노드2 노드안의 서브 노드의 값을 가져와서 출력
}
}catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
getLog("(changeXML)Exception:"+e.getMessage());
}
}
'JAVA' 카테고리의 다른 글
InstallFactory - exe파일로 셋업파일 생성 (0) | 2012.07.29 |
---|---|
jsmooth - jar파일로 exe파일 생성 (0) | 2012.07.29 |
refresh 후 데이터 재전송 문제 (0) | 2012.07.29 |
IBATIS 연산요소 (0) | 2012.07.29 |
jstl 문자열 자르기 (0) | 2012.07.29 |