java代码中不存在的xml标记处理

时间:2015-07-25 00:32:55

标签: java xml

我有这个问题出现在一个非常特殊的情况。我的XML就像

<xo:USAddress>
    <xo:Street>990 STANLEY CT</xo:Street>
    <xo:City>ERIE</xo:City>
    <xo:County>BOULDER</xo:County>
    <xo:State>COLORADO</xo:State>
    <xo:ZipCode>80516</xo:ZipCode>
  </xo:USAddress>

我的代码假设县信息将永远存在于美国地址,但在某些情况下,如维尔京群岛,我们没有得到该县。 在我的服务类中,我有以下内容:

usAddress_Svc.setCounty(usAddress_PAS.getCounty().getStringValue());

如果xml中没有县信息 - 我应该如何处理这种情况。尝试空检查,但这不能解决目的,请建议。

1 个答案:

答案 0 :(得分:0)

你确实通常会得到一个null,因为大多数XML解析器都假设一个空字符串(在Java中它与null值不同)。请尝试使用bs.ResetBindings(false); 来确定该县是否只是一个空白值。

唯一可能为null的是,如果县字段不存在,并且县值未初始化。对于这样的情况,最好的方法可能是使用Java 8可选字段(http://www.oracle.com/technetwork/articles/java/java8-optional-2175753.html)。

如果字段初始化为address.getCounty().isEmpty(),那么您可以使用简单表达式访问其内容或返回默认值,其中包含:

Optional.empty()

这将返回县或值“N / A”。还有很多其他有用的方法。