使用XMLPullParser解析时(之后)过滤文本

时间:2019-04-24 10:17:15

标签: android 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在我的item.setAttr1Name(attr1);中导致了nullpointer异常

我可以尝试做什么?如何正确构建if

也许我应该使用日期,日历,日期格式?..

1 个答案:

答案 0 :(得分: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);
    }
}