xml - 如何在 XML 属性中保存换行符?

标签 xml xslt newline

我需要在某些 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/

相关文章:

c++ - 如何在不添加换行符的情况下将文本附加到 QPlainTextEdit,并将滚动保持在底部?

xml - XPath 按属性选择具有特定父节点的所有子节点

xslt - 查找具有特定名称且不具有特定属性的在前同级

c - 使用 for 循环、三元运算符和条件时出现意外的换行符

java - 我如何在 JBoss eap 6.1 服务器中启用 XSLT 2.0 处理器,以消除 XSLT 2.0 函数不可用等错误

java - 变压器脱离 CR

git - Git 处理 CRLF(回车、换行)的策略是什么?

javascript - 如何通过javascript向IE中的XML添加额外的xmlns命名空间属性

python - Python 不擅长 XML?

java - 如何在 Android 上的现有 XML 布局中包含自定义 View ?