我在处理 xml 中的 \line-feed 和 \carriage-return 字符时遇到了问题。
我知道,根据http://www.w3.org/TR/REC-xml/#sec-line-ends http://www.w3.org/TR/REC-xml/#sec-line-ends,xml 处理器需要用“\n”替换任何“\n\r”或单独的“\r”序列。
规范规定这必须是处理任何“外部解析实体”的行为,这是否也适用于元素内部的 CDATA 部分?
谢谢你,
Michele
我确信 msxml 库会将每个 \n\r" 或单独的 "\r" 序列转换为 "\n",无论它们是否在 cdata 部分中。
我将引用您链接到的部分中的一句话(强调我的):
为了简化应用程序的任务,
XML 处理器的行为必须像
标准化外部的所有换行符
解析的实体(包括
输入时的文档实体),前
解析,通过翻译
两个字符序列 #xD #xA 和任何 #xD
后面没有 #xA 到单个 #xA 字符。
因为 XML 处理器在解析之前执行此操作,所以它还不知道文档的哪些部分是 CDATA 部分。因此,无论字符是否在 CDATA 部分中,它都会进行替换。
为了可靠地保留这些字符,必须将它们写入 XML 文档,如下所示
and 

实体。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)