안드로이드 개발 질문/답변
(글 수 45,052)
ArrayList<Message> getMessage() {try {bundle = getIntent().getExtras();
getMem = bundle.getParcelable("chatMem");int count = 0;
URL url = new URL(""http://192.168.0.45:8080/UsedBookServer/readMsg.jsp?toid=" + getMem.id);
Log.i("CHAT", getMem.id);DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("item");count = nodeList.getLength();
System.out.println("CHAT 카운트는 " + count);rmList.clear();
for (int i = 0; i < count; i++) {Node node = nodeList.item(i);
Element fstElmnt = (Element) node;
NodeList idList = fstElmnt.getElementsByTagName("id");NodeList messageList = fstElmnt
.getElementsByTagName("message");NodeList timeList = fstElmnt
.getElementsByTagName("time");NodeList toidList = fstElmnt
.getElementsByTagName("toid");Element idElement = (Element) idList.item(0);
Element messageElement = (Element) messageList.item(0);
Element timeElement = (Element) timeList.item(0);
Element toidElement = (Element) toidList.item(0);
idList = idElement.getChildNodes();
messageList = messageElement.getChildNodes();
timeList = timeElement.getChildNodes();
toidList = toidElement.getChildNodes();
String id = ((Node) idList.item(0)).getNodeValue();
String message = ((Node) messageList.item(0)).getNodeValue();
String time = ((Node) timeList.item(0)).getNodeValue();
String toid = ((Node) toidList.item(0)).getNodeValue();
message2 = new Message();
message2.setId(id);
message2.setMessage(message);
message2.setTime(time);
message2.setToid(toid);
rmList.add(message2);
Log.e("성공", rmList.get(i).getId());}
} catch (Exception e) { Log.i("XML", "XML Pasing Excpetion = " + e);}
return rmList;
}
xml을 dom파싱하는데 nodelist를 가져오는 곳에서 에러가 납니다
로그 찍어보면 nodelist.getLength()가 0으로 나오구요..
getElementsByTagName 로 NodeList가져오는 부분에서 자꾸 널포인터가 뜹니다 ㅠ ㅠ
도와주세요ㅠㅠㅠㅠ
<%@ page language="java" contentType="text/xml;charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@page import="java.util.*"%>
<maintag> <%!
Connection con;
PreparedStatement pstmt;
ResultSet rs;
String url = "jdbc:oracle:thin:@xxxxxxxxx:1521:JAVA";
String sql = "select * from MESSAGETABLE where toid =?";
public void jspInit() { try { Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();con = DriverManager.getConnection(url, "seven", "seven");
pstmt = con.prepareStatement(sql);
} catch (Exception e) {e.printStackTrace();
}
}%>
<%!
String toid;
String message;
String id;
String getId;
String time;
%>
<%
getId = request.getParameter("toid"); // message = request.getParameter("message"); // toid = request.getParameter("toid");System.out.println(getId);
try { System.out.println("11 ");pstmt.setString(1, getId);
System.out.println("ee ");rs = pstmt.executeQuery();
System.out.println("22 "); if(rs==null)System.out.println("널 "); while(rs.next()){ System.out.println("33 ");toid = rs.getString(1);
message = rs.getString(2);
time = rs.getString(3);
id = rs.getString(4);
System.out.println(time);
%><item> <%
out.print("<toid>"+toid+"</toid>"); out.print("<message>"+message+"</message>"); out.print("<time>"+time+"</time>"); out.print("<id>"+id+"</id>");%> </item><%
}
System.out.println("55 "); } catch (Exception e) { System.out.println("read Msg Err "+e);}
%> </maintag>




자답입니다
String selname = et1.getText().toString();
String idck = URLEncoder.encode(selname, "utf-8");
라고 인코딩을 정해 주니까 되네요 ㅠ ㅠ.........