现在,我从7年开始开发网站和XML界面,从来没有出现过这种情况,确实有必要使用 &gt; 为一个 >. 。到目前为止,所有的disiguition都可以通过引用来处理 <, &, "' 独自的。

是否有人遇到过这种情况(例如,与SGML处理,浏览器问题,XSLT等有关) &gt;?

更新: 我只是检查了 XML规格, ,例如,关于第2.4节中的字符数据,例如:

字符数据

[14]      CharData       ::=      [^<&]* - ([^<&]* ']]>' [^<&]*)

所以即使在那里, > 除了CDATA部分的结尾序列外,没有提到特殊的东西。

这是一个案例,其中 > 具有任何意义,将是CDATA部分的结束, ]]>, ,但再说一次,如果您引用了报价(即,字符串) ]]&gt;)从字面上降落在输出中(因为它是 CDATA).

有帮助吗?

解决方案

您无需绝对,因为几乎所有XML解释器都会理解您的意思。但是,如果您这样做,您仍然使用一个没有任何保护的特殊角色。

XML是关于语义的,这并不是真正符合语义的。

关于你的 更新, ,您忘记了这部分:

可以使用字符串“>”来表示正确的角度括号(>),并且必须使用两者来兼容。 &gt; “或字符引用出现在字符串中时” ]]> “在内容中,当该字符串没有标记CDATA部分的末尾时。

文档中给出的用例更多地是这样的:

<xmlmarkup>
]]>
</xmlmarkup>

在这里 ]]> 部分可能是旧SGML解析器的问题,所以 必须 被逃脱= ]]&gt; 出于兼容性。

其他提示

我用了 一个不是19个小时 以前通过严格的XML验证器。另一种情况是,当您在HTML/XML内容文本(而不是属性)中实际使用它们时,例如: <.

当然,宽松的解析器会接受您投入的大部分内容,但是如果您担心XSS,则是您的朋友。

更新:这是您需要逃脱的示例 > 在Firefox中:

<?xml version="1.0" encoding="utf-8" ?>
<test>
    ]]>
</test>

当然,它仍然不是必须逃脱孤独的例子 >.

不如说是(x)HTML文档的作者,而是作为网站上草率的书面评论字段的用户,可以“向您插入HTML”。

我的意思是,如果您以正确的方式进行网站,那么您还是不会对内容进行硬码,对吗?所以你打电话给 htmlentities 或任何(长时间看不到,PHP)会为您替换特殊角色。所以当然,您不会手动输入 &gt; 但我希望你采取措施 > 自动更换。

我只是想到了另一个示例,您需要引用 > 在html5中(不是XHTML5)文档:如果您在没有引号的属性中需要它(当然可以争论)。

<img src=arrow.png alt=&gt;>

应该等于xhtml

<img src="arrow.png" alt=">" />

但话又说回来, (?

想象您有以下文字 this is a not a ]]> nice day 您决定通过CDATA部分包围它 <![CDATA[this is a not a ]]> nice day]]>.

为了避免这种情况(并允许以未终止标记的部分解析SGML片段),ISO 8879:1986的第10.4条宣布 出现 ]]> 在标记部分外是一个错误.

同样,在SGML标记部分的时代非常流行,因为它们不仅用于CDATA(如XML中),还用于RCDATA(仅允许使用实体和字符参考),并忽略和包括(允许识别标记的识别)内心)。

例如,在SGML中可以写:

 <!ENTITY %WHATTODO "INCLUDE">
 <![%WHATTODO;[<b>]]&gt;</b>]]>

等同于:

 <b>]]&gt;</b>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top