如何在使用geotools解析器解析xml时获取null

时间:2014-12-22 14:47:38

标签: java xml-parsing geotools xsi

我试图从我的xml文件中获取null值,如下面的

  <top:kadastroParselFeature gml:id="KADASTRO_PARSEL.1">
    <top:olcek xsi:nil="true" />
  </top:kadastroParselFeature>

但是我的解析器抛出了这样一个异常:

java.lang.RuntimeException: Parsing failed for kadastroParselFeature: java.lang.NullPointerException
at org.geotools.xml.impl.ParseExecutor.visit(ParseExecutor.java:164)
at org.geotools.xml.impl.BindingWalker$BindingExecutionChain.execute(BindingWalker.java:220)
at org.geotools.xml.impl.BindingWalker.walk(BindingWalker.java:186)
at org.geotools.xml.impl.ElementHandlerImpl.endElement(ElementHandlerImpl.java:236)
at org.geotools.xml.impl.ParserHandler.endElement(ParserHandler.java:719)

我的解析器配置如下:

   org.geotools.xml.Configuration configuration = new org.geotools.gml2.GMLConfiguration();

   org.geotools.xml.Parser parser = new org.geotools.xml.Parser( configuration );

   parser.setFailOnValidationError(false);

   HashMap<Object, Object> parsedMap = (HashMap<Object, Object>) parser.parse( isx);

如果我从元素中删除xsi:nill="true",则返回“”(空字符串),但我需要null。

我的解析器用于http://docs.geotools.org/stable/userguide/library/xml/geometry.html

1 个答案:

答案 0 :(得分:1)

如果我将版本从gml2更改为gml3,我找到了解决我的gml编写器版本问题的解决方案。并且我改变了我的解析器配置。像这样

       org.geotools.xml.Configuration configuration = new org.geotools.gml3.ApplicationSchemaConfiguration("sampleURL", "sample.xsd");


       org.geotools.xml.Parser parser = new org.geotools.xml.Parser( configuration );