Je convertis une chaîne XML à Nodelist utilisant le code,Comment supprimer les nouvelles lignes introduites lors de la conversion de Document en String?
InputSource inputSource = new InputSource(new ByteArrayInputStream(
uploadFormBean.getXhtmlResponse().getBytes()));
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
Document document;
document = documentBuilderFactory.newDocumentBuilder().parse(inputSource);
je fais la inorder ci-dessus pour effectuer une itération sur la liste de noeuds et de remplacer de l'un des éléments de noeud en utilisant le setTextContent.
Je puis convertir le document en chaîne en utilisant l'API ci-dessous,
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);
Quand j'afficher la chaîne, je trouve que le xml résultant a obtenu de nouvelles lignes introduites.
Pourquoi cela se produit-il? La source xml String n'a pas ces nouvelles lignes. Comment cela peut-il être résolu?
Lorsque j'utilise str.replaceAll ("(\ r | \ n)", ""); il supprime toutes les nouvelles lignes. Je ne veux pas que cela arrive. Je veux que la chaîne revienne de la même manière que l'entrée. Je cherche un moyen d'éviter les nouvelles lignes inutiles introduites dans le traitement.
Quelle est la version de Java que vous utilisez? – Max
La réponse à la question suivante semble utile ici: http: // stackoverflow.com/questions/6317273/pourquoi-est-apache-xerces-xalan-ajouter-carriage-returns-to-my-serialized-o – Integrator