如何打印格式化的 SOAPMessage?
How to print a formatted SOAPMessage?
我有一个 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 and How to convert SOAPBody to String,但都没有解决换行符 and/or 格式化 SOAPMessage
.
的问题
如果您不介意向项目添加额外的依赖项,那么 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);
我有一个 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 and How to convert SOAPBody to String,但都没有解决换行符 and/or 格式化 SOAPMessage
.
如果您不介意向项目添加额外的依赖项,那么 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);