【问题标题】:How to convert byte array of a SOAP message to raw XML in Java如何将 SOAP 消息的字节数组转换为 Java 中的原始 XML
【发布时间】:2015-04-02 19:33:41
【问题描述】:

我正在开发一个 Web 服务,服务通过 SOAPMessage (SOAP XML) 相互通信。 SOAPMessage 以字节数组的形式输入我的方法

public void process(byte xmlByteArray[]){ ... ..... }

我需要将此字节数组转换为原始 XML,以便我可以使用 JDOM 处理它。

你知道这个问题的任何解决方案吗?

【问题讨论】:

  • 我已经看到了。我想这里还有一步:将字节数组转换为肥皂消息。
  • 你想要的方法输出格式到底是什么?
  • JDOM 文档是理想的。
  • 爱你,让选民失望。至少发表评论:)

标签: java xml dom soap jdom


【解决方案1】:

试试这个:

public static Document byteArrayToDocument( final byte[] byteArray ) throws IOException, SAXException,
        ParserConfigurationException
{
     final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
     final DocumentBuilder builder = factory.newDocumentBuilder();
     return builder.parse( new ByteArrayInputStream( byteArray ) );
}

【讨论】:

  • 它可能有效,但您的方法的返回类型是 org.w3c.dom.Document 而不是 JDOM.Document。
  • 我想我可以将其转换为字符串并重新转换回来
【解决方案2】:
SAXBuilder builder = new SAXBuilder();
Document document = builder.build(new ByteArrayInputStream(xmlByteArray));

http://www.java2s.com/Code/Java/XML/ReadanXMLdocumentusingJDOM.htm

【讨论】:

    【解决方案3】:

    这是VTD-XML中的操作方法

    导入 com.ximpleware.*;

    public class readBytes{
    
        public static void main(String[] s} throws VTDException{
            VTDGen vg = new VTDGen();
            //get XML Byte array here
            vg.setDoc(xmlByteArray);
            vg.parse();
            VTDNav vn = vg.getNav();
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 2017-07-11
      • 2023-03-27
      • 2021-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多