Tag: 变换器

如何强制javax xslt转换器使用utf-8编码国家字符而不是html实体?

我正在研究filter,它应该使用一些样式表来转换输出。 代码的重要部分如下所示: PrintWriter out = response.getWriter(); … StringReader sr = new StringReader(content); Source xmlSource = new StreamSource(sr, requestSystemId); transformer.setOutputProperty(OutputKeys.ENCODING, “UTF-8”); transformer.setParameter(“encoding”, “UTF-8”); //same result when using ByteArrayOutputStream xo = new java.io.ByteArrayOutputStream(); StringWriter xo = new StringWriter(); StreamResult result = new StreamResult(xo); transformer.transform(xmlSource, result); out.write(xo.toString()); 问题是国家字符被编码为html实体而不是使用UTF。 有没有办法强制变压器使用UTF-8而不是实体?

Java 1.6:javax.xml.transform.Transformer拒绝缩进包含换行符的xml字符串

我需要能够使用Java API完美地打印xml字符串,并且已经在Web和此特定网站上找到了多种解决方案。 尽管多次尝试将其与javax.xml.transform.Transformer一起使用,但到目前为止它仍然失败了。 我在下面提供的代码仅在参数中的xml字符串不包含xml元素之间的任何换行符时才有效。 这不会做。 我需要能够漂亮地打印任何东西,假设它是格式良好且有效的xml,甚至是以前漂亮的打印字符串。 我得到了这个(从我发现的代码片段拼凑而成,人们声称它适用于他们): import java.io.*; import javax.xml.transform.*; import javax.xml.transform.stream.*; public class XMLFormatter { public static String format(String xml, int indent, boolean omitXmlDeclaration) throws TransformerException { if (indent < 0) { throw new IllegalArgumentException(); } String ret = null; StringReader reader = new StringReader(xml); StringWriter writer = new StringWriter(); try { TransformerFactory […]