我正在尝试使用 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 文件。任何帮助将不胜感激:)
最佳答案
您可以对 unmarshal
操作的结果调用 JAXBIntrospector.getValue(Object)
,以防止结果被包装在 JAXBElement
中。
关于java - 使用JAXB解析GPX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21868282/