嵌套CDATA - 正确

Eug*_*gun 6 xml cdata

这是XML文档中的问题:

<![CDATA[<b>Title</b> 
       Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
       tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
       quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
       consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
       cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
       proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
]]>
Run Code Online (Sandbox Code Playgroud)

我需要在本文中插入CDATA表达式.怎么做 ?(如果我喜欢这个,我会在评估文件中看到错误)

<![CDATA[]]]]>Expression<![CDATA[>]]>
Run Code Online (Sandbox Code Playgroud)

Mik*_*e M 8

@Oded在评论中发布了上面的参考真实答案...我想将其添加为答案,以便人们可以找到它.
如果他/她添加它我们可以删除这个.

是的,重要的是要确定你需要这样做; "CDATA"通常首先被误用,更不用说嵌套了.但在一些时髦的场合我们做到了.

-

基本计划是将嵌套CDATA的结尾埋在另一个CDATA中.它将被剥夺外部CDATA的解释以离开内部.

这是来自@Oded上面的维基百科文章
en.wikipedia.org/wiki/CDATA#Nesting

动作是替换任何内部嵌套

]]>
Run Code Online (Sandbox Code Playgroud)

]]]]><![CDATA[>
Run Code Online (Sandbox Code Playgroud)


Swa*_*nny 2

我可以给你一个发生在我身上的场景。我有一个 SharePoint 内容编辑器 Web 部件,已导出为 .dwp(其内容包装在 CDATA 中),需要将其插入到 Visual Studio 部署包中,Elements.xml 文件中的目标点也是CDATA。这有点愚蠢,因为它只是 XML 中的 HTML,但它是 SharePoint,所以愚蠢是正常状态。

因此,为了防止其他人访问此页面,我想我应该总结一下我提出的解决方案:

1) XML 对内部 CDATA 进行编码,因此您不需要内部 CDATA。可能并不总是实用,但在我的情况下有效。

2) 在这种情况下,还有另一个选项,将内容编辑器 Web 部件的内容移动到单独的文件,并将内容编辑器链接到该 Web 部件文件。我想这属于重新思考你的战略方法的范围。

3)上述将整个CDATA分割成三个独立的连续CDATA的想法。虽然这是一个聪明的想法并且适用于一般情况,但我不确定这是否适用于我的情况。这是因为内容将由两个不同的进程传递,即部署者和页面管理器。部署者需要获取外部 CDATA 的内容并将其整个传递给页面管理器,然后页面管理器将 CDATA 的内容作为单个元素值。使用 3 CDATA 方法,部署者会将整个内容视为单个 XML 结构,因此 HTML 实际上会被错误地解释。(我希望这是有道理的)。