Я преобразую строку XML в список узлов, используя код,
InputSource inputSource = new InputSource(new ByteArrayInputStream(
uploadFormBean.getXhtmlResponse().getBytes()));
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
Document document;
document = documentBuilderFactory.newDocumentBuilder().parse(inputSource);
Я делаю вышеуказанный порядок, чтобы перебрать список узлов и заменить элементы одного узла, используя setTextContent.
Затем я преобразовываю документ в строку, используя приведенный ниже API,
ByteArrayOutputStream byteOutput = new java.io.ByteArrayOutputStream();
Result result = new StreamResult(byteOutput);
Source source = new DOMSource(document);
// write the DOM document to the file
Transformer transformer;
transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "YES");
transformer.transform(source, result);
String resultText = byteOutput.toString();
System.out.println("resultText::" + resultText);
Когда я отображаю строку, я обнаружил, что в результате в xml появились новые строки.
Почему это происходит? Исходная строка XML не имеет этих новых строк. Как это можно решить?
Когда я использую str.replaceAll ("(\ r | \ n)", ""); удаляет все новые строки. Я не хочу, чтобы это произошло. Я хочу вернуть строку так же, как ввод. Я ищу способ избежать ненужных новых строк, введенных в обработку.