Наткнулся на баг в библиотеке Xalan (являющейся в моем случае реализацией по-умолчанию javax.xml.transform.TransformerFactory): при сериализации в Windows XML-документа с CDATA-секциями переводы строки в этих секциях представляются последовательностями CR-CR-LF вместо CR-LF. В баг трекере апача соответствующая заявка лежит уже давным-давно без ответа: https://issues.apache.org/jira/browse/XALANJ-2547. Выход - например, заменять вручную в полученной строке "\r\r\n" на "\r\n":
public static String domToString(Document dom) throws TransformerException
{
Source source = new DOMSource(dom);
StringWriter stringWriter = new StringWriter();
Result result = new StreamResult(stringWriter);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.transform(source, result);
return stringWriter.getBuffer().toString().replace("\r\r\n", "\r\n");
}
Комментариев нет:
Отправить комментарий