我需要在某些 XML 属性中保存包含换行符的内容,而不是文本。 应该选择该方法,以便我能够在 XSLT 1.0/ESXLT/XSLT 2.0 中对其进行解码
什么是最好的编码方式?
请提出建议/给出一些想法。
最佳答案
在兼容的 DOM API 中,您不需要做任何事情。只需将实际的换行符保存到属性中,API 就会自行对它们进行正确编码(参见 Canonical XML spec, section 5.2 )。
如果您进行自己的编码(即在保存属性值之前将 \n
替换为
),API 将再次对您的输入进行编码 ,导致 XML 文件中的
。
底线是,字符串值是逐字保存的。您取出您放入的东西,无需干涉。
但是……有些实现不符合要求。例如,他们将在属性值中编码 &
字符,但忘记换行符或制表符。这使您处于不利地位,因为您不能简单地预先用
替换换行符。
这些实现将保存未编码的换行符,如下所示:
<xml attribute="line 1
line 2" />
在解析此类文档时,属性中的文字换行符被规范化为单个空格(同样,根据规范)——因此它们会丢失。
在这些实现中不可能在属性中保存(并保留!)换行符。
关于xml - 如何在 XML 属性中保存换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2004386/