【问题标题】:Using JAXB to parse GPX使用 JAXB 解析 GPX
【发布时间】:2014-03-19 01:30:46
【问题描述】:

我正在尝试使用 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 文件。任何帮助将不胜感激:)

【问题讨论】:

    标签: java xml jaxb gpx


    【解决方案1】:

    您可以在unmarshal 操作的结果上调用JAXBIntrospector.getValue(Object),以防止将结果包装在JAXBElement 中。

    【讨论】:

    • 我猜你的意思是把它放在这一行? list = (GpxType) unmarshaller.unmarshal(new java.io.File(path)); //NOI18N
    猜你喜欢
    • 2012-01-28
    • 2012-03-14
    • 2020-01-21
    • 2012-12-25
    • 2010-10-14
    • 2017-08-09
    • 1970-01-01
    • 2011-02-28
    相关资源
    最近更新 更多