Я пытаюсь проанализировать свой xml с помощью SAX, я хочу использовать JaxB для создания моей карты моего имени элемента и его значения. Я также хочу переопределить startElement и endElemnt, но до этого я дошел до сих пор, и я получаю unmarshal exception.Any помощь приветствуется !.
JAXBContext jaxbContext = JAXBContext.newInstance(my.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
UnmarshallerHandler unmarshallerHandler = jaxbUnmarshaller.getUnmarshallerHandler();
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
xr.setContentHandler(unmarshallerHandler);
InputStream inputStream = this.getClass().getResourceAsStream("my.xml");
InputSource inputSource = new InputSource(inputStream);
xr.parse(inputSource);
JAXBElement element = (JAXBElement) jaxbUnmarshaller.unmarshal(inputSource);
//or if I unmarahall to specific class object still i get same exception.
} catch (JAXBException e) {
// some exception occured
e.printStackTrace();
}
Вы не можете InputSource
после того, как вы использовали синтаксический анализ SAX. Чтобы получить вызов объекта getResult
на UnmarshallerHandler
.