[j2me] kXML 2 - przykład użycia

0

Może ktoś zademonstrować i opisać krok po kroku jak przeparsować jakiś plik/źródło zwrócone w postaci XML?
Chciałem pobrać dane z bazy w postaci XML przy pomocy PHP, ale zupełnie mi to nie wychodzi. W Javie stawiam dopiero pierwsze kroki. Bardzo proszę o jakiś prosty przykład.

0

W czym konkretniej problem? kXML2 jest opakowaniem (ang. wrapper) dla biblioteki XmlPull (xmlpull.org), z dosyc konkretnie opisanym API.
Zasada jest prosta:

  1. tworzysz parser (obiekt klasy KXmlParser)
  2. podpinasz do niego strumien wejsciowy, InputStream lub InputReader
  3. parsujesz strumien wejsciowy tag po tagu.

Do dyspozycji masz wyciaganie tagow XML, ich atrybutow, tekstu, kometarzy, ustawianie kodowania i zakresu nazw (ang. namespace). Mozesz tez wymusic konkretna strukture dokumentu (metoda reuqire(int, String, String)).

Przyklad:

        String url = "http://www.w3schools.com/xml/note.xml"
        HttpConnection con = null;
        InputStream is = null;
        try {
            con = (HttpConnection) Connector.open(url);
            if(con.getResponseCode() != HttpConnection.HTTP_OK) {
                throw new IOException("Bad response from server!");
            }
            is = con.openInputStream();
            KXmlParser parser = new KXmlParser();
            try {
                parser.setInput(is, null);
                int type = parser.next();
                parser.require(KXmlParser.START_TAG, null, "note");
                while(type != KXmlParser.END_DOCUMENT) {
                    if(type == KXmlParser.TEXT) {
                        System.out.println("Text: " + parser.getText());
                    } else {
                        System.out.println("Tag: " + parser.getName());
                    }
                    type = parser.next();
                }
            } catch(XmlPullParserException xppe) {
                xppe.printStackTrace();
            }
        } finally {
            if(is != null) {
                is.close();
            }
            if(con != null) {
                con.close();
            }
        }
0

Dzięki wielkie za wyjaśnienie. Miałem problem już na samym początku - nie umiałem stworzyć parsera. Teraz już coś mi wychodzi, ale nie dokońca.
Potrzebuję sparsować plik w postaci:

<dane>
<osoba>
<imie>Jan</imie>
<nazwisko>Nowak</nazwisko>
</osoba>
<osoba>
<imie>Zbigniew</imie>
<nazwisko>Kowalski</nazwisko>
</osoba>
</dane>

tak, aby pobrać imię i nazwisko osoby i dodać do listy, np. Jan Nowak oraz Zbigniew Kowalski jako kolejną pozycję na liście.

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