Если вы строго говорите о File
объектах, то ответ , данный Божо , верен.Если вы рассматриваете представление DOM, то JAXB предлагает оба подхода:
Unmarshaller / Marshaller
В следующем коде originalDOM! = MarshalledDOM.
Node originalDOM; // Populate original document
JAXBContext jc = JAXBContext.newInstance(Customer.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Customer customer = (Customer) unmarshaller.unmarshal(orginalDocument);
Marshaller marshaller = jc.createMarshaller();
marshalledDOM = marshaller.getNode(customer);
Binder
При использовании Binder
поддерживается связь между объектами и узлами DOM, с которых они были отменены.Если вы измените немаршаллированный объект, Binder
позволит вам применить эти изменения обратно к исходному DOM.Этот подход очень полезен, когда в документе есть несопоставленное содержимое, которое необходимо сохранить (например, комментарии и инструкции по обработке).
JAXBContext jc = JAXBContext.newInstance(Customer.class);
Binder<Node> binder = jc.createBinder();
Customer customer = (Customer) binder.unmarshal(document);
customer.getAddress().setStreet("2 NEW STREET");
binder.updateXML(customer);
Для получения дополнительной информации