"/"的XML实体?

Alp*_*nts 41 xml entity escaping sequence

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

"Jim/Bob"
Run Code Online (Sandbox Code Playgroud)

所以我查看了用作转义序列的XML实体,我看到的每个列表都没有包含正斜杠的列表.我错过了一些明显的东西吗?看起来像你想要逃脱的那种事情......

Ray*_*sen 50

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

唯一保留的字符是:

>
<
&
%
Run Code Online (Sandbox Code Playgroud)

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

  • '%'不需要XML格式的编码.'>'可能需要在一个特定的利基情况下进行编码.'''或'''需要在属性值内部进行编码(以该属性的分隔符为准). (3认同)

sin*_*tuf 7

我知道事实证明这不是问题,但我认为除了bobince的答案之外,Fraction Slash HTML实体&frasl;看起来就像正斜杠一样有用.以防任何人到达此页面实际上确实需要一个HTML实体来代表正斜杠.

  • SAX 解析器使用 ⁄ 向我提供有关引用但未声明的实体的错误信息。所以我使用了 Unicode 等效的 ⁄ 而且效果很好。谢谢。 (2认同)

小智 6

我不认为这个帖子中的注释是完全正确的,因为如果你使用模式(XSD),你可以定义名称为Jim,Bob和Jim/Bob的元素没有任何问题.但是当你想要定义元素和实体时:

<names>
  <Jim>Carrey</Jim>
  <Bob>Jones</Bob>
  <Jim/Bob>Six figured Hillbilly</Jim/Bob>
</names>
Run Code Online (Sandbox Code Playgroud)

问题很明显.


bob*_*nce 5

它没有预定义的实体引用,但您可以使用字符引用:"/".

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


Ada*_*ent 5

仅供参考,尽管斜杠是有效的XML,但请注意在下游如何使用它。我们将其用于连接到Azure Service Bus队列。Azure本身在连接字符串中生成带有斜杠的键,但是当我们尝试使用它们时,它会默默地断开。“&#47;”使它们逃脱使其正常工作

"Jim&#47;Bob"
Run Code Online (Sandbox Code Playgroud)