44

所以我正在编写一些 XML 生成代码,发现以下属性值搞砸了 XML 格式:

"Jim/Bob"

所以我查看了用作转义序列的 XML 实体,我看到的每个列表都没有包含一个用于正斜杠的列表。我在这里遗漏了一些明显的东西吗?似乎是那种你想逃避的东西……

4

7 回答 7

58

正斜杠按原样有效,不需要进一步编码。

唯一的保留字符是:

>
<
&
%

对于更多 XML 实体 - http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

于 2009-02-11T22:31:42.607 回答
9

我知道事实证明这不是问题,但我认为除了 bobince 的回答之外,提及Fraction Slash HTML 实体&frasl;看起来就像一个正斜杠会很有帮助。以防万一到达此页面的任何人确实需要一个 HTML 实体来表示正斜杠。

于 2013-08-12T14:31:41.417 回答
7

我不认为这个线程中的评论是完全正确的,因为如果您使用模式 (XSD),您可以毫无问题地定义名称为 Jim、Bob 和 Jim/Bob 的元素。但是当你想定义元素和实体时:

<names>
  <Jim>Carrey</Jim>
  <Bob>Jones</Bob>
  <Jim/Bob>Six figured Hillbilly</Jim/Bob>
</names>

问题很明显。

于 2011-10-12T09:45:07.083 回答
6
于 2016-08-17T11:08:40.377 回答
5

它没有预定义的实体引用,但您可以使用字符引用:“&#47;”。

但是,您不需要转义 / 以包含在 XML 中。您可能必须将其包含在其他内容中,例如 URI 路径部分。但是,您必须先将其转义为该格式;获取 URI 的应用程序无法知道您是否在 XML 中对其进行了编码。

于 2009-02-11T22:39:12.027 回答
4

我不明白为什么“Jim/Bob”的值需要转义或导致 XML 出现任何问题。

于 2009-02-11T22:34:03.413 回答
0

您可能有一个受约束的属性,如 XML 模式中所定义。

我不知道您所说的 XML 格式是什么意思。

于 2009-02-11T22:33:46.160 回答