0

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)

4

1 回答 1

2

你倒退了:XML 1.1 放宽了字符限制。XML 1.0不允许大多数 ASCII 控制字符,而XML 1.1允许除 NUL 之外的所有控制字符(两者都禁止代理)。

如果您必须处理包含禁止字符的字符串,您有两种选择:使用依赖于应用程序的方案转义它们,或删除它们。请注意,您不能使用 XML字符引用(也称为数字实体)来“转义”这些值;解析器将翻译这些引用并拒绝它们。

但是,在您麻烦执行此操作之前,您应该确认您确实必须这样做。

于 2012-09-07T20:18:54.097 回答