Uso de Java, me gustaría tener un documento en el siguiente formato:Elimina espacios en blanco y saltos de línea a partir de XML en Java
<tag1>
<tag2>
<![CDATA[ Some data ]]>
</tag2>
</tag1>
y convertirlo a:
<tag1><tag2><![CDATA[ Some data ]]></tag2></tag1>
He intentado lo siguiente, pero no me está dando el resultado que estoy esperando:
DocumentBuilderFactory dbfac = DocumentBuilderFactory.newInstance();
dbfac.setIgnoringElementContentWhitespace(true);
DocumentBuilder docBuilder = dbfac.newDocumentBuilder();
Document doc = docBuilder.parse(new FileInputStream("/tmp/test.xml"));
Writer out = new StringWriter();
Transformer tf = TransformerFactory.newInstance().newTransformer();
tf.setOutputProperty(OutputKeys.INDENT, "no");
tf.transform(new DOMSource(doc), new StreamResult(out));
System.out.println(out.toString());
Puede tratar esto como un archivo de texto, abrirlo con un BufferedReader, leer cada línea y guardar su valor de recorte dentro de un StringBuilder, después de todo esto, use un BufferedWriter para guardar su archivo con los contenidos de StingBuilder. –
Si está dispuesto a utilizar algo como Xerces-J, puede utilizar OutputFormat para no imprimir los resultados: http://xerces.apache.org/xerces-j/apiDocs/org/apache/xml/serialize/OutputFormat .html –
Por cierto, la razón por la que 'setIgnoringElementContentWhitespace' no ayuda es porque debe usar la validación de XML Schema/DTD para que el analizador sepa qué espacio en blanco es ignorable. – jtahlborn