From 57abfd28aa87facd3b17962df7f765dbf872245d Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Tue, 22 Feb 2022 14:41:12 +0100 Subject: [PATCH] XmlPullUtil: rewrite valueTag() and optValueTag() to handle whitespace-only values as empty. --- src/de/schildbach/pte/util/XmlPullUtil.java | 25 ++++++++++++--------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/src/de/schildbach/pte/util/XmlPullUtil.java b/src/de/schildbach/pte/util/XmlPullUtil.java index 8af19428..9d4b2868 100644 --- a/src/de/schildbach/pte/util/XmlPullUtil.java +++ b/src/de/schildbach/pte/util/XmlPullUtil.java @@ -187,24 +187,29 @@ public final class XmlPullUtil { public static String valueTag(final XmlPullParser pp, final String tagName) throws XmlPullParserException, IOException { XmlPullUtil.enter(pp, tagName); - final String value = pp.getText(); + String value = pp.getText(); 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) throws XmlPullParserException, IOException { - if (XmlPullUtil.test(pp, tagName)) { - if (!pp.isEmptyElementTag()) { - return valueTag(pp, tagName); - } else { - pp.next(); - return defaultValue; - } - } else { + if (!XmlPullUtil.test(pp, tagName)) + return defaultValue; + if (pp.isEmptyElementTag()) { + pp.next(); return defaultValue; } + final String value = valueTag(pp, tagName); + if (value == null) + return defaultValue; + return value; } /**