Более простой способ превратить DOMSource в StreamSource?
Мне нужно преобразовать 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);
Нет ли более простого способа сделать это?
1 ответ
Решение
Это такой же хороший способ, как и любой другой. Поскольку ваша сторонняя библиотека принимает XML только в лексической форме, у вас нет другого выбора, кроме как сериализовать DOM, чтобы внешняя библиотека могла его повторно проанализировать. Глупый дизайн - скажи им так.