java如何使用Transformer在XML中取消显示字符串?
我有一个函数,它将XML文档作为参数并将其写入文件。它包含作为<tag>"some text & some text": <text> text</tag>
的元素,但在输出文件中它作为<tag>"some text & some text": <text> text</tag>
写入,但我不希望在写入文件时转义字符串
功能是
public static void function(Document doc, String fileUri, String randomId){
DOMSource source = new DOMSource(doc,ApplicationConstants.ENC_UTF_8);
FileWriterWithEncoding writer = null;
try {
File file = new File(fileUri+File.separator+randomId+".xml");
if (!new File(fileUri).exists()){
new File(fileUri).mkdirs();
}
writer = new FileWriterWithEncoding(new File(file.toString()),ApplicationConstants.ENC_UTF_8);
StreamResult result = new StreamResult(writer);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = null;
transformer = transformerFactory.newTransformer();
transformer.setParameter(OutputKeys.INDENT, "yes");
transformer.transform(source, result);
writer.close();
transformer.clearParameters();
}catch (IOException | TransformerException e) {
log.error("convert Exception is :"+ e);
}
}
# 1 楼答案
XML中有五个转义字符(
"'<>&
)。根据XML语法,它们必须在XML中的某些位置转义,请参见以下问题:例如,为了避免在文本内容中转义
&
或<
,您不能做太多如果您想保留“unescaped”内容,可以使用
CDATA
节。请看这个问题: