【问题标题】:Is it correct to escape "&", ">" and "<" with &#38;, &#62; and &#60; in XML?在 XML 中用 &、> 和 < 转义“&”、“>”和“<”是否正确?
【发布时间】:2017-05-19 04:57:33
【问题描述】:

如果我对 XML 中的保留字符使用数字实体而不是通常推荐的 alpha 实体,是否会“破坏”?

这是一个相当复杂的应用程序的一部分,它允许用户通过 XML、CSV 或基于 Web 的表单输入书目元数据。 然后可以使用用户选择的编码(utf-8、win-1252 等)以 XML(使用ONIX 标准)提取这些数据。

最初的程序员(现在早已不复存在了......)决定对无法以所选编码表示的所有字符使用数字实体。 XML 保留的字符在任何编码下都被认为是不可表示的。它们被给予相同的处理,并使用数字实体进行编码。

一些用户抱怨 &、 等被编码为 & 等,而不是使用通常的字母代码,我想知道这些抱怨是否有任何实质内容。

如果我可以避免挖掘遗留代码来改变这种行为,它会为我节省大量资源。

【问题讨论】:

    标签: xml encode entities


    【解决方案1】:

    是的,可以使用数字字符引用进行转义。

    来自spec(强调我的):

    & 符号 (&) 和左尖括号 (numeric 对它们进行转义 字符引用或字符串“&amp;amp;”和“&amp;lt;” 分别。右尖括号 (>) 可以使用 字符串“&amp;gt;”,为了兼容性,必须使用 “&amp;gt;”或出现在字符串“]]&gt;”中的字符引用 在内容中,当该字符串未标记 CDATA 的结尾时 部分。

    您也可以使用十六进制实体引用...

    &amp;amp; = &amp;#38; = &amp;#x26;

    &amp;lt; = &amp;#60; = &amp;#x3C;

    &amp;gt; = &amp;#62; = &amp;#x3E;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 2018-05-28
      • 2011-01-02
      相关资源
      最近更新 更多