Java—使用JAXB API从JAXBElement获取XML内容
我有下面的代码,它使用JAXB API将医院数据保存到XML文件中,工作正常,但我想在保存之前将XML内容从Java—使用JAXB API从JAXBElement获取XML内容,java,xml,jaxb,jaxbelement,Java,Xml,Jaxb,Jaxbelement,我有下面的代码,它使用JAXB API将医院数据保存到XML文件中,工作正常,但我想在保存之前将XML内容从元素(JAXBElement的实例)转换为字符串对象,而无需再次读取该文件,如何在几行代码中实现这一点 Wrapper hopitaux=new Wrapper(); setElements(getListe()); BufferedWriter writer=新的BufferedWriter(新文件编写器(hfile)); JAXBContext context=JAXBContext.
元素
(JAXBElement
的实例)转换为字符串
对象,而无需再次读取该文件,如何在几行代码中实现这一点
Wrapper hopitaux=new Wrapper();
setElements(getListe());
BufferedWriter writer=新的BufferedWriter(新文件编写器(hfile));
JAXBContext context=JAXBContext.newInstance(Wrapper.class、Hopital.class、Service.class、Medecin.class);
JAXBElement元素=新的JAXBElement(新的QName(“hopitaux”),Wrapper.class,hopitaux);
Marshaller m=context.createMarshaller();
m、 setProperty(Marshaller.JAXB_编码,“iso-8859-15”);
m、 setProperty(Marshaller.JAXB_格式化的_输出,true);
m、 元帅(元素、系统、输出);
m、 元帅(要素、作者);
writer.close();
将其封送到StringWriter
以捕获字符串中的输出。不过,我认为,您必须将编码从封送器
移动到将字符串写入文件的位置
StringWriter stringWriter = new StringWriter();
m.marshal(element, stringWriter);
String content = stringWriter.toString();
try (BufferedWriter writer = Files.newBufferedWriter(hfile,
Charset.forName("ISO-8859-15"))) {
writer.write(content);
}
(假设hfile
是路径
,否则根据需要使用Path.get(hfile)
或hfile.toPath()