Я использую класс javax.xml.transform.Transformer для выполнения некоторых XSLT-переводов, например:
TransformerFactory factory = TransformerFactory.newInstance();
StreamSource source = new StreamSource(TRANSFORMER_PATH);
Transformer transformer = factory.newTransformer(source);
StringWriter extractionWriter = new StringWriter();
String xml = FileUtils.readFileToString(new File(sampleXmlPath));
transformer.transform(new StreamSource(new StringReader(xml)),
new StreamResult(extractionWriter));
System.err.println(extractionWriter.toString());
Однако, независимо от того, что я делаю, я не могу избежать того, чтобы преобразователь преобразовывал любые вкладки, которые были в исходном документе, в эквивалент их символьного объекта (	
). Я пробовал оба:
transformer.setParameter("encoding", "UTF-8");
и
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
но ни одна из них не помогает. У кого-нибудь есть предложения? Потому что:
					<MyElement>
выглядит действительно глупо (даже если это работает).