所以我正在编写一些 XML 生成代码,发现以下属性值搞砸了 XML 格式:
"Jim/Bob"
所以我查看了用作转义序列的 XML 实体,我看到的每个列表都没有包含一个用于正斜杠的列表。我在这里遗漏了一些明显的东西吗?似乎是那种你想逃避的东西……
正斜杠按原样有效,不需要进一步编码。
唯一的保留字符是:
>
<
&
%
对于更多 XML 实体 - http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
我知道事实证明这不是问题,但我认为除了 bobince 的回答之外,提及Fraction Slash HTML 实体⁄
看起来就像一个正斜杠会很有帮助。以防万一到达此页面的任何人确实需要一个 HTML 实体来表示正斜杠。
我不认为这个线程中的评论是完全正确的,因为如果您使用模式 (XSD),您可以毫无问题地定义名称为 Jim、Bob 和 Jim/Bob 的元素。但是当你想定义元素和实体时:
<names>
<Jim>Carrey</Jim>
<Bob>Jones</Bob>
<Jim/Bob>Six figured Hillbilly</Jim/Bob>
</names>
问题很明显。
它没有预定义的实体引用,但您可以使用字符引用:“/”。
但是,您不需要转义 / 以包含在 XML 中。您可能必须将其包含在其他内容中,例如 URI 路径部分。但是,您必须先将其转义为该格式;获取 URI 的应用程序无法知道您是否在 XML 中对其进行了编码。
我不明白为什么“Jim/Bob”的值需要转义或导致 XML 出现任何问题。
您可能有一个受约束的属性,如 XML 模式中所定义。
我不知道您所说的 XML 格式是什么意思。