Фильтрация текста во время (после) синтаксического анализа с помощью XMLPullParser

У меня есть xml вроде:

<tag attr1="20190325235500 +0200">

</tag>
<tag attr1="20190326000000 +0200">

</tag>
<tag attr1="20190326000000 +0200">

</tag>
<tag attr1="20190326000000 +0200">
</tag>

Я разбираю его с помощью XMLPullParser, например:

                if (parser.getName().equals(tag)) {
                    attr1 = parser.getAttributeValue(0);
                    item = new SomeItem(attr1);
                    item.setAttr1Name(attr1);
                    items.add(item);

                }

Так что у меня много таких записей, как attr1="20190326000000 +0200"

Теперь я хочу отфильтровать все эти записи и оставить, например, только те, которые начинаются с 20190326.

Я думал, это поможет мне:

if (parser.getName().equals(tag) && parser.getAttributeValue(0).substring(0, 8).equals("20190326"))

но я был неправ, и это if вызывало исключение nullpointer в моем item.setAttr1Name(attr1);

Что я могу попробовать сделать? Как правильно построить if?

Может, стоит использовать что-нибудь из Date, Calendar, DateFormat? ..


person danyapd    schedule 24.04.2019    source источник
comment
используйте 1_   -  person Nongthonbam Tonthoi    schedule 24.04.2019


Ответы (1)


Попробуй это

if (parser.getName().equals(tag)) {
    attr1 = parser.getAttributeValue(0);
    if (attr1 != null && attr1.startsWith("20190326") {
        item = new SomeItem(attr1);
        item.setAttr1Name(attr1);
        items.add(item);
    }
}
person Ferran    schedule 24.04.2019