我有一个函数,它将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);
}
}
答案 0 :(得分:1)
XML中有五个转义字符("'<>&
)。根据XML语法,他们必须在XML的某些地方进行转义,请看这个问题:
因此,您不能太多,以避免在文本内容中转义&
或<
。
如果您想保留“未转义”内容,可以使用CDATA
部分。请看这个问题: