之所以提出这个问题,是因为开发人员 Michael Rys 相当激进地拒绝将 CDATA 部分的解析包含在 FOR XML PATH 中,因为“您存储的数据中没有语义差异”。
我在 CDATA 节点和其他需要使用特殊或难看字符的内容中存储了 HTML 块。但是,我觉得没有资格挑战 Rys 有争议的断言,因为我想,在我为方便起见而使用 CDATA 的场景中,从技术上讲,他是正确的。
真正让我吃惊的是,当开发人员在互联网上寻求有关如何使用 FOR XML PATH 呈现 CDATA 段的建议时,受访者不断指示他们使用 FOR XML EXPLICIT,Rys 引用的 XML 呈现方法是“查询从地狱”。
如果我们真的可以在任何人可以建议的每个用例中不使用 CDATA,我想我们应该停止抱怨并从此拒绝 CDATA 的使用。但是,如果有明确定义的情况下 CDATA 是必不可少的,Rys 已经承诺他会将其烘焙到 FOR XML PATH 中,并在此问题的最顶部链接中继续前进。
那么它会是哪一个呢?CDATA 部分真的是过去的遗迹吗?或者 Rys 是否应该伸出手指并允许在 FOR XML PATH 中解析 CDATA?同时,在我们处理它的同时,是否有任何技巧可以让 FOR XML PATH 返回 CDATA 部分?