Возникли проблемы с парсингом мужского здоровья RSS на андроид - PullRequest
0 голосов
/ 27 апреля 2011

Я пытаюсь проанализировать 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();
    }
...