我试图从我的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
答案 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 );