我需要将DOMSource
转换为StreamSource
,因为第三方库只接受SOAP的流源。
在这种情况下,性能并不是一个问题,所以我想出了一套非常冗长的命令:
DOMSource src = new DOMSource(document);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
StreamResult result = new StreamResult();
ByteArrayOutputStream out = new ByteArrayOutputStream();
result.setOutputStream(out);
transformer.transform(src, result);
ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
StreamSource streamSource = new StreamSource(in);
有没有更简单的方法来做到这一点?
答案 0 :(得分:6)
这是一种很好的方式。因为您的第三方库只接受词法形式的XML,所以除了序列化DOM以便外部库可以重新解析它之外别无选择。愚蠢的设计 - 告诉他们。