猿问

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

我需要在某些XML属性而不是文本中保存包含换行符的内容。应该选择该方法,以便我能够在XSLT 1.0 / ESXLT / XSLT 2.0中对其进行解码


最好的编码方法是什么?


请提出/提出一些想法。


芜湖不芜
浏览 1420回答 3
3回答

潇湘沐

在兼容的DOM API中,您无需执行任何操作。只需将实际的换行符保存到属性中,API就会自行对其进行正确编码(请参见Canonical XML规范,第5.2节)。如果您进行自己的编码(即在保存属性值之前替换\n为&#10;),则API将再次对您的输入进行编码,从而生成&amp;#10;XML文件。底线是,字符串值按原样保存。您可以摆脱自己的投入,无需干预。但是 ……某些实现不符合要求。例如,它们将&在属性值中编码字符,而忽略换行符或制表符。这使您处于失败的位置,因为您不能简单地&#10;预先用换行符替换。这些实现将保存未编码的换行符,如下所示:<xml attribute="line 1line 2" />解析此类文档后,属性中的文字换行符将被规范化为一个空格(同样,按照规范),因此它们将丢失。在这些实现中,无法在属性中保存(并保留!)换行符。

呼如林

您可以使用该实体&#10;在XML属性中表示换行符。&#13;可用于表示回车。Windows样式的CRLF可以表示为&#13;&#10;。这是合法的XML语法。有关更多详细信息,请参见XML规范。
随时随地看视频慕课网APP
我要回答