我正在开发一款Android应用。我需要将Jsoup中的一个元素更改为一个字符串,以便我可以减去这两个元素。以下代码和String value = valueOf(arrT.val());
不起作用。我不知道如何将Element转换为字符串。我的代码是:
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);
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();
}
Elements elem = doc.select("eta");
for (Element div : elem) {
}Elements elemn = doc.select("eta"); for (Element div : elem) {
Elements arrT = div.select("arrT");
Elements prdt = div.select("prdt");
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
Date date2 = sdf.parse(prdt.val());
Date date1 = sdf.parse(arrT.val());
tv.setText(String.valueOf (prdt));
long dateDiff = (date1.getTime() - date2.getTime())>0 ? (date1.getTime() - date2.getTime()) :(date2.getTime() - date1.getTime());
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
sdf1.format(dateDiff);
}
catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
它给我一个编译错误,说prdt不能从Element更改为字符串。我很乐意为你提供任何帮助,因为我在网上可以找到这方面的帮助。谢谢。
答案 0 :(得分:3)
使用Jsoup text()功能
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
Date date2 = sdf.parse(prdt.text());
答案 1 :(得分:1)
试试:
String value = arrT.val();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
Date date = sdf.parse(value);
注意:日期模式必须与传递给解析方法的格式相匹配。
附加说明:由于 doc = Jsoup.connect(URL)进行网络调用,请考虑将其置于AsyncTask中,而不是直接在UI线程上调用(在onCreate()方法中)。 / p>
答案 2 :(得分:1)
如果您要在
中获取约会那应该是这样的 你忘了 prdt.val()
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd hh:mm:ss");
Date date = sdf.parse(prdt.val());