Android: Как получить значение ТЕГА: с помощью XmlPullParser - PullRequest
0 голосов
/ 11 июля 2020

как указано в заголовке, с помощью XmlPullParser можно получить теги документа XML с помощью функции, которая выглядит следующим образом:

  public static void parseXML(Context context) {
        XmlPullParserFactory parserFactory;
        try {
            parserFactory = XmlPullParserFactory.newInstance();
            XmlPullParser parser = parserFactory.newPullParser();
            InputStream is = context.getAssets().open("example.xml");
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
            parser.setInput(is, null);

            processParsing(parser);

        } catch (XmlPullParserException e) {

        } catch (IOException e) {
        }
}

public static void processParsing(XmlPullParser parser) throws IOException, XmlPullParserException{
        int eventType = parser.getEventType();

        while (eventType != XmlPullParser.END_DOCUMENT) {
            String eltName = null;

            switch (eventType) {
                case XmlPullParser.START_TAG:
                    eltName = parser.getName();

                    System.out.println(eltName); //Delievers the TAG-Name
                    System.out.println(parser.getText()); // Should deliever the TAG-Value - delievers 'null'
                    System.out.println(parser.nextText()); // Also doesn't give out any value.

                    break;
            }
            eventType = parser.next();
        }
    }

XML: example.xml

<players>
    <player>
        <name>Lebron James</name>
        <age>32</age>
        <position>SF/PF</position>
    </player>
    <player>
        <name>Kevin Durant</name>
        <age>29</age>
        <position>SF/PF</position>
    </player>
    <player>
        <name>Stephen Curry</name>
        <age>29</age>
        <position>PG</position>
    </player>
</players>

Проблема: System.out.println(parser.getText()); // Должно доставить значение TAG - доставляет 'null' System.out.println(parser.nextText()); // Также не выдает никакого значения.

Вопрос: Как получить значение тегов в данном XML -документе?

Как получить значение

1 Ответ

0 голосов
/ 11 июля 2020

Для получения текста вам нужен другой регистр:

case XmlPullParser.TEXT:

И затем внутри этого блока вы можете получить текст .

parser.getText ()

...