使用 XMLPullParser 解析时(之后)过滤文本
Filter text while (after) parsing with 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);
中导致空指针异常
我可以尝试做什么?如何建权if
?
也许我应该使用 Date、Calendar、DateFormat 之类的东西?..
试试这个
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);
}
}
我有一些 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);
我可以尝试做什么?如何建权if
?
也许我应该使用 Date、Calendar、DateFormat 之类的东西?..
试试这个
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);
}
}