![]() |
1
11
这是我的预期用途。不要将结果文档缩小几个字节,因为您可以使用
同样,从上面的示例(xhtml中的svg代码)中获取样本,这使得我可以很容易地检查xhtml文件的源代码,只需复制、粘贴svg代码就可以了,无需再次进行替换。
|
![]() |
2
5
pcdata—解析的字符数据,这意味着输入的数据将由解析器解析。 CDATA-解析器不会解析在CDATA元素之间输入的数据。也就是说,解析器将忽略CDATA部分中的文本。因此,恶意用户可以使用这些CDATA元素向应用程序发送破坏数据。
CDATA部分以开头
唯一一条
不能
发生在CDATA中的是
我们使用CDATA的唯一原因是:像javascript代码这样的文本包含很多
|
![]() |
3
3
我相信CDATA是
打算
要允许原始二进制数据:只要它不包含“]]>”,那么任何内容都将进入CDATA部分。这确实使它与普通的XML不同,并且应该加快解析速度(并且消除了全文编码的必要性,从而提高了第二个性能)。
事实上,它被证明是一个很有问题的问题:人们没有逃过结束序列,几个早期的解析器有不同的损坏,所以大多数现在只使用文本编码来对二进制数据进行编码,使得CDATA部分有点毫无意义,是的。
|
![]() |
4
3
我不知道这会有多大帮助,但我也会把它扔进去: 其中一个问题是,XML开发人员有两个截然不同的阵营,其中一些人将XML视为 数据 还有一些人更喜欢 以文档为中心 方式。(XML的好处是它对两者都很好。) 那些将XML视为数据表示的人——XML通常由工具生成和使用,而人们只参与故障排除——在CDATA部分中几乎看不到任何价值,因为它不会对他们的工具产生影响,而那些将XML用于更以文档为中心的目的的人可能会发现CDATA部分更多。很有用。 |
![]() |
5
3
对我来说,CDATA只是懒惰的另一个词。当我开始使用XML时,我使用它,但现在我总是转换数据。 我能想到的最好原因是方便。尤其是当您使用XML作为某种形式的包装器,将数据从一个系统传输到另一个系统时,在这种情况下,您可能会得到以下结果。
而使用CDATA将导致不需要额外的转换步骤。 另一种用法是嵌入数据,而不必关心嵌入数据中的不同命名空间。但这并不是一个很好的使用方法。 我发现了另一个使用CDATA的好方法的例子,这是我应该想到的。当您需要将代码嵌入到XML文件中时,这种情况下代码不应该被转换,或者它将无法工作和/或不容易读取。 |
![]() |
6
2
MXML演示了如何大量使用CDATA标记。我喜欢MXML的一个特点是它是有效的XML,这意味着我可以做一些有用的事情,比如使用转换从不同的XML文件以编程方式生成Flash小部件,并根据模式验证MXML。 CDATA标记在MXML中很有用,因为它们可以在MXML文件中定义ActionScript脚本块,允许我在单个文件中组合ECMA类型的脚本语言(与>和<等)和有效的XML。 编辑: 我认为将MXML和ActionScript结合起来的另一种选择是以HTML和JavaScript结合的方式将它们结合起来,即将脚本包装在脚本块内的XML注释标记中,而使用CDATA的选择是由MXML编译器的开发人员做出的。我认为原因可能更多地与编辑有关,因为MXML编辑器根据模式验证代码,以检查语法并提供上下文帮助,以及分析ActionScript代码以获取语法和上下文帮助。在编辑器中使用CDATA可以同时执行这两项操作,并区分XML注释和脚本块。 |
![]() |
7
2
如果有疑问, check the spec :
|
![]() |
8
1
当您想要为某个XML定义一个模式,但是其中的一部分超出了您的控制,并且您不能确保它符合该模式或者不会破坏XML时,CDATA部分确实很有用。 我经常需要使用具有HTML输出的传统系统,这些输出通常不是格式良好的XHTML,我可以附加一个模式,以确保XML的结构正确,但带有一个标记,该标记只包含一个CDATA部分,用于在CDATA中容纳可能不好的HTML。 这不是一个常见的用法,但当你不想让其他人的松散编程破坏你的系统时,它肯定有它的用途。 |
![]() |
Pjoern · 在XSLT中包装没有属性的节点组 6 年前 |
![]() |
user2093335 · XSLT:基于现有属性值替换属性值 6 年前 |
![]() |
Leth · 字符串串联functoid不将映射值返回到目标记录 6 年前 |
![]() |
shawn · XSLT 3.0在应用模板中使用变量进行动态选择? 6 年前 |
|
user9238790 · 将XML转换为数据帧 6 年前 |
![]() |
Vanessa · xsl:当两个节点相等时,显示第一个节点的子节点 6 年前 |
![]() |
Adi · 并行读取大型XSLT字符串 6 年前 |
![]() |
Brian Arthur · XSLT从另一个上下文获取信息 6 年前 |