Я пытаюсь проанализировать RSS-канал от мужского здоровья, используя конструктор документов. Это не работает, и когда я отлаживаю, я не получаю ошибку. Я думаю, что проблема связана со строками элементов, так как я не совсем понимаю, правильно ли я получаю значения. Вот мой код:
private void refreshTips(){
//Get the XML
URL url;
try {
String tipFeed = getString(R.string.tip_feed);
url = new URL(tipFeed);
URLConnection connection;
connection = url.openConnection();
HttpURLConnection httpConnection = (HttpURLConnection)connection;
int responseCode = httpConnection.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK){
InputStream in = httpConnection.getInputStream();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
//Parse the menshealth feed
Document dom = db.parse(in);
Element docEle = dom.getDocumentElement();
//Clear the old tips
tips.clear();
//Get a list of each tip entry
NodeList nl = docEle.getElementsByTagName("item");
if(nl != null && nl.getLength() >0){
for(int i=0; i < nl.getLength(); i++){
Element item = (Element)nl.item(i);
Element title = (Element)item.getElementsByTagName("title").item(0);
Element link = (Element)item.getElementsByTagName("link").item(0);
Element details = (Element)item.getElementsByTagName("description").item(0);
Element when = (Element)item.getElementsByTagName("pubDate").item(0);
String _title = title.getNodeValue();
String _link = link.getNodeValue();
String _det = details.getNodeValue();
String _date = when.getNodeValue();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'");
Date tDate = new GregorianCalendar(0,0,0).getTime();
try{
tDate = sdf.parse(_date);
}catch(ParseException e){
e.printStackTrace();
} catch (java.text.ParseException e) {
e.printStackTrace();
}
Tip tip = new Tip(tDate, _title, _det, _link);
addNewTip(tip);
}
}
}
}catch(MalformedURLException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}catch(ParserConfigurationException e){
e.printStackTrace();
}catch(SAXException e){
e.printStackTrace();
}
finally {
}
}
private void addNewTip(Tip tip){
tips.add(tip);
aa.notifyDataSetChanged();
}