将Java对象转换为XML字符串

是的,是的,我知道有关此主题的问题很多。但是我仍然找不到解决我问题的方法。我有一个带属性的Java对象。例如客户,如本例所示。我想要它的字符串表示形式。为此,Google建议使用JAXB。但是在所有示例中,创建的XML文件都会打印到文件或控制台,如下所示:

File file = new File("C:\\file.xml");

JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);

Marshaller jaxbMarshaller = jaxbContext.createMarshaller();

// output pretty printed

jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);

jaxbMarshaller.marshal(customer, file);

jaxbMarshaller.marshal(customer, System.out);

但是我必须使用该对象并以XML格式通过网络发送。所以我想得到一个表示XML的字符串。

String xmlString = ...

sendOverNetwork(xmlString);

我怎样才能做到这一点?

回答:

您可以使用Marshaler的方法进行封送处理,该方法将Writer作为参数:

元帅(Object,Writer)

并传递给它一个可以构建String对象的实现

BufferedWriter,CharArrayWriter,FilterWriter,OutputStreamWriter,PipedWriter,PrintWriter,StringWriter

调用其toString方法以获取实际的String值。

这样做:

StringWriter sw = new StringWriter();

jaxbMarshaller.marshal(customer, sw);

String xmlString = sw.toString();

以上是 将Java对象转换为XML字符串 的全部内容, 来源链接: utcz.com/qa/427250.html

回到顶部