Jsoup를 사용하여 Android에서 요소를 다시 검색하고 있습니다. 이 코드에서 다음 eta 요소를 가져와야합니다. 어떻게해야할지 모르겠다. 나는 xml을 retreiving from : http://lapi.transitchicago.com/api/1.0/ttarrivals.aspx?key=201412abc85d49b2b83f907f9e329eaa&mapid=40380입니다. 누군가 elem.iterator()를 사용하여 자랐지 만 코드에이 코드를 넣는 방법을 모르겠습니다. (이 코드는 웹 사이트입니다) http://www.jsoup.org/apidocs/org/jsoup/select/Elements.html#iterator() 내 코드는 아래에 있습니다.같은 이름의 다음 Jsoup 요소 가져 오기
TestStation.java
public class TestStation extends Activity {
String URL = "http://lapi.transitchicago.com/api/1.0/ttarrivals.aspx?key=201412abc85d49b2b83f907f9e329eaa&mapid=40380";
@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_station);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
Document doc = null;
TextView tv = (TextView) findViewById(R.id.tv);
TextView tv1 = (TextView) findViewById(R.id.tv1);
TextView tv2 = (TextView) findViewById(R.id.tv2);
TextView tv3 = (TextView) findViewById(R.id.tv3);
TextView tv4 = (TextView) findViewById(R.id.tv4);
TextView tv5 = (TextView) findViewById(R.id.tv5);
try {
doc = Jsoup.connect(URL).userAgent("Mozilla/5.0 (Macintosh; U; Intel Mac OS X; de-de) AppleWebKit/523.10.3 (KHTML, like Gecko) Version/3.0.4 Safari/523.10").get();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Iterator<Element> iterator = elem.iterator();
while(iterator.hasNext())
{ Element div = iterator.next();
Elements arrT = div.select("arrT");
Elements prdt = div.select("prdt");
Elements staNm = div.select("staNm");
String StaNm = staNm.text();
tv1.setText(String.valueOf (StaNm));
while(iterator.hasNext())
{ Element div1 = iterator.next();
Elements arrT1 = div1.select("arrT");
Elements prdt1 = div1.select("prdt");
Elements staNm1 = div1.select("staNm");
String StaNm1 = staNm1.text();
tv2.setText(String.valueOf (StaNm1));
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
Date date1 = sdf.parse(arrT.text());
Date date2 = sdf.parse(prdt.text());
Date date3 = sdf.parse(arrT1.text());
Date date4 = sdf.parse(prdt1.text());
long dateDiff = (date1.getTime() - date2.getTime())>0 ? (date1.getTime() - date2.getTime()) :(date2.getTime() - date1.getTime());
long dateDiff1 = (date3.getTime() - date4.getTime())>0 ? (date3.getTime() - date4.getTime()) :(date4.getTime() - date3.getTime());
SimpleDateFormat sdf1 = new SimpleDateFormat("mm:00");
String dateDif = sdf1.format(dateDiff);
String dateDif1 = sdf1.format(dateDiff1);
tv.setText(String.valueOf (dateDif));
tv3.setText(String.valueOf (dateDif1));
}
catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
지금 로그 캣 오류를 받고 있어요, 그리고 그것의 작동이 중지되었습니다 말한다 : 나는 두 가지 요소를 얻을 수 있지만, 그들이 내 코드와 함께
09-26 20:34:50.456: E/AndroidRuntime(22691): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dev.chicagotraintracker/com.dev.chicagotraintracker.TestStation}: java.lang.NullPointerException
09-26 20:34:50.456: E/AndroidRuntime(22691): at com.dev.chicagotraintracker.TestStation.onCreate(TestStation.java:57)
을 똑같은. 나는 dateDiff와 dateDiff1에 대해 같은 숫자를 얻는다. 어떻게 같은 이름의 다음 에타 요소를 얻을 수 있습니까? 도와 줘서 고마워.
내가 본 코드는 전혀 이해가되지 않습니다. 당신의 질문에 대해 다시 생각해보십시오. –
내 빼기, 당신은 같은 수학적 뺄셈을 의미합니까 : 20130921 17:32:24 - 20130921 17:16:24 ? 의 여러 항목이 있습니다. 각 항목에는 arrT와 prdt가 들어 있습니다. 각 항목에 대해이 작업을 수행 하시겠습니까? –
네, 저는 17:32:24와 17:16:24의 시간 부분을 수학적으로 뺍니다. 나는 각 입장을 위해 그것을하고 싶을. – hichris123