android - 使用 XMLSerializer 将文本写入 XML,无需转义

标签 android xml xml-serialization xmlserializer

我正在尝试使用 XMLSerializer 将文本写入 XML 文件。 text(String) 函数自动转义字符。

将文本添加到 xml 文件时是否可以不转义文本?

如果不可能,您能否推荐一个简单的解决方法,而无需重写我的所有 XML 创建代码?

谢谢

最佳答案

您可能同时找到了自己的解决方案,但这里有一个可能的解决方案。我没有使用序列化程序,而是直接调用底层 StringWriter 来插入原始文本(在我的例子中,这是格式良好的 xml,因此我想避免转义 <,> 标记)。请注意,序列化器刷新对于获得正确的顺序非常重要。

XmlSerializer serializer = Xml.newSerializer();
StringWriter writer = new StringWriter();
try {
    serializer.setOutput(writer);
    serializer.startDocument("UTF-8", true);
    serializer.startTag(namespace, "destination");
    serializer.attribute(namespace, "id", String.valueOf(destinationId));
    serializer.flush();
    writer.write(DestinationContent);
    serializer.endTag(namespace, "destination");
    ...
} catch (Exception e) {
   throw new RuntimeException(e);
}

关于android - 使用 XMLSerializer 将文本写入 XML,无需转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6030728/

相关文章:

android - Flutter 不包含原生调试符号

java - 如何将欧元符号编码为 android XML 文件中的 strings.xml

.net - 当列名包含空格时,为什么我的 DataTable 不能正确序列化?

c# - 如何将元素添加到 c# XSD 生成的序列化类中的数组?

html - 帮助 sed regex : extract text from specific tag

c# - 序列化包含 List<T> 的 List<T>

android - Recyclerview notifyDataSetChanged 再次进入同一 Activity 时未调用

android - 可通过代码绘制圆角

android - 违反 google play 中的权限政策

java - 通过关键字将一个大的xml文件拆分成多个小文件