我有SOAPMessage
(在javax.xml.soap.SOAPMessage
中找到)。
然而,打印它的唯一方法似乎是soapMessage.writeTo(System.out);
但是,这并没有任何新行和大SOAPMessage
它可能很难阅读。
此外,使用System.out.println(soapMessage.toString());
只打印出来:
com.sun.xml.internal.messaging.saaj.soap.ver1_1.Message1_1Impl@76c7e77a
我查看了How to pretty print XML from Java?,How to print SOAPMessage和How to convert SOAPBody to String,但都没有解决换行问题和/或格式化SOAPMessage
。
答案 0 :(得分:1)
如果您不介意为项目添加额外的依赖项,那么jdom会为XML提供良好的格式化输出。
jdom.org的文档值得一看。
这有点令人费解,但您可以将XML写入JDOM Document对象,然后使用XMLOutputter对象以漂亮的格式打印它。:
// write the SoapMessage to a String called xml
File file= new File(pathToFile);
file.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream(file);
soapMessage.writeTo(fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
SAXBuilder b = new SAXBuilder();
Document doc = b.build(file);
XMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat());
xmlOutputter.output(doc, System.out);