Parsowanie i wyciaganie informacji z xml

0

Witam
Napisałem kod który ma wyciągnąć kurs średni wybranej waluty ze strony internetowej. Niestety kod który wydaje mi się poprawny coś nie spełnia swoich wymagań ponieważ wypisuje html zamaist wartości

public class HTML {
    private String _nameCurrency,_rate="html";
    HTML(String nam){
        this._nameCurrency=nam;
    }

    private XmlPullParserFactory xmlFactoryObject;
    public volatile boolean parsingComplete = true;

    public String getRate(){
        return _rate;
    }

    public void parseXMLAndStoreIt(XmlPullParser myParser) {
        ArrayList<Currency> _currencyList=null;
        Currency _currency=null;
        int event;
        String text=null;

        try {
            event = myParser.getEventType();

            while (event != XmlPullParser.END_DOCUMENT) {
                String name=null;

                switch (event) {
                    case XmlPullParser.START_TAG:
                        name = myParser.getName();
                        if (name == "pozycja") {
                            _currency = new Currency();
                        } else if (_currency != null) {
                            if (name == "nazwa_waluty") {
                                _currency.name = myParser.nextText();
                            } else if (name == "przelicznik") {
                                _currency.number = myParser.nextText();
                            } else if (name == "kod_waluty") {
                                _currency.kod = myParser.nextText();
                            } else if (name == "kurs_sredni") {
                                _currency.rate = myParser.nextText();
                            }

                        }
                        break;

                    case XmlPullParser.END_TAG:
                        name = myParser.getName();
                        if (name.equalsIgnoreCase("pozycja") && _currency != null) {
                            _currencyList.add(_currency);
                        }
                        break;
                }
                event = myParser.next();
            }
            parsingComplete = false;
        }

        catch (Exception e) {
            e.printStackTrace();
        }

        for(Currency tmp: _currencyList){
            if (tmp.name==_nameCurrency)
                _rate=tmp.getRate();
        }
    }

    public void fetchXML() {
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    URL url = new URL("http://www.nbp.pl/kursy/xml/a103z150529.xml");
                    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

                    conn.setReadTimeout(10000);
                    conn.setConnectTimeout(15000);
                    conn.setRequestMethod("GET");
                    conn.setDoInput(true);
                    conn.connect();

                    InputStream stream = conn.getInputStream();
                    xmlFactoryObject = XmlPullParserFactory.newInstance();
                    XmlPullParser myparser = xmlFactoryObject.newPullParser();

                    myparser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
                    myparser.setInput(stream, null);

                    parseXMLAndStoreIt(myparser);
                    stream.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

}
0

Porównaj z https://github.com/Koziolek/kursynbp/blob/master/src/main/java/com/tyrsoft/kursynbp/parsers/AbstractExchangeTableParser.java i zauważ na czym polega różnica przy wybieraniu wartość z taga xml.

1 użytkowników online, w tym zalogowanych: 0, gości: 1