我使用的javax.xml.transform.Transformer类来执行一些XSLT转换,就像这样:如何防止javax变换器转义空白?
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>
看起来非常愚蠢(即使它确实有效)。
在这种情况下,在字符引用或实际Unicode字符之间,XML(即XSLT)之间没有语义差异。这也是Xalan特有的(正如你自己的答案似乎指出的那样)。所以,这个答案的索引标签是`xsltprocessor`。 – 2010-09-10 18:50:01