xml에서 모든 값을 얻고 싶습니다. 하지만 끝에 null 포인터 예외가 직면하고있다. XML에서 각 값을 가져 와서 변수에 할당하는 방법을 알려주십시오. xml = response.get(). asXml();xml in java를 반복하는 방법
int i=0;
while(xml.hasChildNodes())
{
NodeList node = xml.getChildNodes().item(0).getChildNodes();
message = node.item(i).getTextContent();
//message = node.item(i).getTextContent();
System.out.println(message);
i++;
}
로그 메시지
'13-ARTENGO-P1046'
'1'
'1614113'
'2014-10-16 12:53:33.663165'
'13-ARTENGO-P1046'
'1'
'1799748'
'2014-10-16 12:53:33.663165'
'13-ARTENGO-P1046'
'1'
'1799597'
'2014-10-16 12:53:33.663165'
'13-ARTENGO-P1046'
'1'
'8225610'
'2014-10-16 12:53:33.663165'
[error] ShipmentSearch - Error occured due to: null
java.lang.NullPointerException
at webservices.GetAllBoxDetails.browseAll(GetAllBoxDetails.java:55)
at controllers.Application.searchshipment(Application.java:58)
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$2$$anonfun$apply$2.apply(routes_routing.scala:77)
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$2$$anonfun$apply$2.apply(routes_routing.scala:77)
at play.core.Router$HandlerInvoker$$anon$6$$anon$2.invocation(Router.scala:141)
at play.core.Router$Routes$$anon$1.invocation(Router.scala:322)
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:31)
at play.db.jpa.TransactionalAction$1.apply(TransactionalAction.java:19)
at play.db.jpa.TransactionalAction$1.apply(TransactionalAction.java:17)
at play.db.jpa.JPA.withTransaction(JPA.java:101)
at play.db.jpa.TransactionalAction.call(TransactionalAction.java:14)
at play.core.j.JavaAction$$anon$2.apply(JavaAction.scala:74)
at play.core.j.JavaAction$$anon$2.apply(JavaAction.scala:73)
at play.libs.F$Promise$PromiseActor.onReceive(F.java:420)
at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:159)
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425)
at akka.actor.ActorCell.invoke(ActorCell.scala:386)
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230)
at akka.dispatch.Mailbox.run(Mailbox.scala:212)
Please anyone help me to solve this issue.
버그가 있습니다 ... xml.hasChildNodes()는 XML에 자식이 있으므로 항상 true를 반환합니다. 그런 다음 목록에 더 이상 노드가 없을 때까지 'i'를 증가시킵니다 ... 코드를 수정하십시오. –
XML에 자식 노드가 있는지 확인하고 있습니다. 그런 다음 A에 childnodes가 있는지 확인하지 않고 childnodes B에 액세스합니다. A에 자식 노드가 없으면 예외가 throw 될 수 있습니다. – Rumo