XmlPullUtil: rewrite valueTag() and optValueTag() to handle whitespace-only values as empty.

This commit is contained in:
Andreas Schildbach 2022-02-22 14:41:12 +01:00
parent 36bc759742
commit 57abfd28aa

View file

@ -187,24 +187,29 @@ public final class XmlPullUtil {
public static String valueTag(final XmlPullParser pp, final String tagName) public static String valueTag(final XmlPullParser pp, final String tagName)
throws XmlPullParserException, IOException { throws XmlPullParserException, IOException {
XmlPullUtil.enter(pp, tagName); XmlPullUtil.enter(pp, tagName);
final String value = pp.getText(); String value = pp.getText();
XmlPullUtil.skipExit(pp, tagName); XmlPullUtil.skipExit(pp, tagName);
return value != null ? value.trim() : null; if (value == null)
return null;
value = value.trim();
if (value.isEmpty())
return null;
return value;
} }
public static String optValueTag(final XmlPullParser pp, final String tagName, final @Nullable String defaultValue) public static String optValueTag(final XmlPullParser pp, final String tagName, final @Nullable String defaultValue)
throws XmlPullParserException, IOException { throws XmlPullParserException, IOException {
if (XmlPullUtil.test(pp, tagName)) { if (!XmlPullUtil.test(pp, tagName))
if (!pp.isEmptyElementTag()) { return defaultValue;
return valueTag(pp, tagName); if (pp.isEmptyElementTag()) {
} else { pp.next();
pp.next();
return defaultValue;
}
} else {
return defaultValue; return defaultValue;
} }
final String value = valueTag(pp, tagName);
if (value == null)
return defaultValue;
return value;
} }
/** /**