我使用的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