2016-08-02 5 views
0

Я новичок в использовании jaxb, я могу маршалировать класс java с аннотациями xml на .xml, но не способен извлекать данные во время unmarshalling. Когда я делаю sysout в своих немаршаллированных данных, он печатает адрес контекста, а не фактические значения. Я не уверен, где я ошибаюсь.JAXB unmarshalling подробно

<collections> 
    <collectionclass="testclass"> 
     <group> 
      <header code="T123" type="toys"/> 
      <obj1 location="1" shelf="4" /> 
      <obj2 location="7" shelf="2" count="3"/> 
       <associations> 
        <association type="String" associatedName="train" associatedFieldSize="0"/> 
        <association type="DataLength" associatedName="ship" associatedFieldSize="0"/> 
       </associations> 
      </obj2> 
     </group> 
      <collectionclass="testclass"> 
    </collections> 

Кроме того, я хотел бы знать больше о таких терминах, как «контекст JAXB» и «Java модели/Java модель классы», генерируемый на демаршаллизацию документа XML и как она входит в картину.

Заранее благодарен!

ответ

0

Попробуйте, как показано ниже.

попробовать {

File file = new File("C:\\file.xml"); 
    JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class); 

    Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); 
    Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file); 
    System.out.println(customer); 

    } catch (JAXBException e) { 
    e.printStackTrace(); 
    } 
+0

Я пытался что-то вроде этого, JAXBContext JAXBContext = JAXBContext.newInstance (Collections.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); Коллекция коллекцийContext = (Коллекции) jaxbUnmarshaller.unmarshal (новый файл («TestXml.xml»)); System.out.println (collectionContext); OUTPUT: [email protected] – yellow

+0

Похоже, вы пытаетесь напечатать объект. Вы должны напечатать свойства в этом объекте, тогда только вы можете увидеть значения. System.out.println (customer.name); – spm

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

  • Нет связанных вопросов^_^