我正在尝试使用JAXBU解析GPX文件,这是我的代码:
GpxType unmarshal(String path) {
GpxType list = new GpxType();
try {
javax.xml.bind.JAXBContext jaxbCtx = javax.xml.bind.JAXBContext
.newInstance(list.getClass().getPackage().getName());
javax.xml.bind.Unmarshaller unmarshaller = jaxbCtx.createUnmarshaller();
list = (GpxType) unmarshaller.unmarshal(new java.io.File(path)); //NOI18N
return list;
} catch (javax.xml.bind.JAXBException ex) {
// XXXTODO Handle exception
java.util.logging.Logger.getLogger("global")
.log(java.util.logging.Level.SEVERE, null, ex); //NOI18N
}
return null;
}
然而我收到以下错误:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException:
javax.xml.bind.JAXBElement cannot be cast to GPXfiles.GpxType
所以我猜它是因为使用JAXBU寻找XML文件而不是GPX文件。任何帮助将不胜感激:)
答案 0 :(得分:0)
您可以对JAXBIntrospector.getValue(Object)
操作的结果调用unmarshal
,以防止JAXBElement
中包含的结果。