XML 1.1 与 1.0
鉴于 1.0 中的某些字符在 1.1 中不再被接受,这是在 xml 元素上设置 Text 的正确方法吗?
如果元素 e = new Element("foo")
我应该这样做吗:
e.setText(sanitized_text_illegal_characters_removed_or_escaped) ?
或
e.setText(any_text)
最佳答案
您已经搞反了:XML 1.1 放宽了字符限制。而XML 1.0不允许使用大多数 ASCII 控制字符 XML 1.1允许除 NUL 之外的所有控制字符(均禁止代理)。
如果您必须处理包含禁止字符的字符串,您有两种选择:使用依赖于应用程序的方案对它们进行转义,或者删除它们。请注意,您不能使用 XML character reference (又名数字实体)“转义”值;解析器将翻译这些引用并拒绝它们。
但是,在您不厌其烦地执行此操作之前,您应该验证是否确实需要这样做。
关于java - Xml 1.1 与 1.0 库的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12323608/