2014-02-19 2 views
1

Я пытаюсь разобрать файл GPX с помощью JAXBU вот мой код:Использование JAXB для анализа 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

Вы можете позвонить по телефону JAXBIntrospector.getValue(Object) по результатам операции unmarshal, чтобы оградить от результата, завернутого в JAXBElement.

+0

Я предполагаю, что вы имеете в виду положить его в эту строку? 'list = (GpxType) unmarshaller.unmarshal (новый java.io.File (путь)); // NOI18N' – ROBOCOP99

Смежные вопросы