【问题标题】:How to print a formatted SOAPMessage?如何打印格式化的 SOAPMessage?
【发布时间】:2015-04-09 20:06:54
【问题描述】:

我有一个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 SOAPMessageHow to convert SOAPBody to String,但都没有解决换行问题和/或格式化SOAPMessage

【问题讨论】:

    标签: java xml soap javax.xml


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-31
      • 2010-10-22
      相关资源
      最近更新 更多