java - 使用JAXB解析GPX

标签 java xml jaxb gpx

我正在尝试使用 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/

相关文章:

java - Android (Java) 使用服务器简单发送和接收 - 快速设置挑战

java - java程序中连接 Access 数据库

java - 在以下情况下我应该如何编写 JUnit 测试?

java - 重写 XML 文件时使用哪种 Java XML 解析方法?

java - 如何将 JAXB 整数解码为其等效的枚举?

java - HQL 子字符串最后 x 个字符

java - TestNG XML 无效

xml - HXT:如何使用箭头的输出作为函数参数?

java - 使用 JAXB 生成随机实例

rest - 什么是 jaxb 提供程序、jaxb 处理程序和 contextResolvers?