JAXB是否支持在不编组/解组的情况下修改现有XML文档?
我想在文档中保留注释,排序等,并使用Java界面就地编辑文档。
JAXB会这样做吗?
XMLBeans等其他工具可以做到这一点吗?
您可以将JAXB Binder
用于此用例:
input.xml中
Jane Doe 1 A Street Any Town 555-HOME 555-CELL
演示
import java.io.File; import javax.xml.bind.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.*; public class BinderDemo { public static void main(String[] args) throws Exception { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); File xml = new File("input.xml"); Document document = db.parse(xml); JAXBContext jc = JAXBContext.newInstance(Customer.class); Binder binder = jc.createBinder(); Customer customer = (Customer) binder.unmarshal(document); customer.getAddress().setStreet("2 NEW STREET"); PhoneNumber workPhone = new PhoneNumber(); workPhone.setType("work"); workPhone.setValue("555-WORK"); customer.getPhoneNumbers().add(workPhone); binder.updateXML(customer); TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); t.transform(new DOMSource(document), new StreamResult(System.out)); } }
产量
Jane Doe 2 NEW STREET Any Town 555-HOME 555-CELL 555-WORK
了解更多信息