我有一个采用 Document 并生成 XML String 值的方法。它工作正常,除了空格、制表符和其他类似的字符按原样保留在节点值中。我需要将它们转换为十六进制等价物。
这是我的方法:
public static String docToXML( Document doc )
{
try
{
StringWriter sw = new StringWriter();
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.METHOD, "xml");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.transform(new DOMSource(doc), new StreamResult(sw));
return sw.toString();
}
catch (Exception ex)
{
throw new RuntimeException("Error converting to String", ex);
}
}
即使值以十六进制形式输入到文档中,它也会在转换为字符串时转换为空格或制表符。
有谁知道如何做到这一点?我假设它是一个输出属性,但我还没有找到。
编辑:
当前的行为是这样的(对于空间):
<MyField> </MyField>
期望的行为是:
<MyField> </MyField>