所以我正在编写一些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的元素没有任何问题.但是当你想要定义元素和实体时:
Carrey Jones Six figured Hillbilly
问题很明显.
它没有预定义的实体引用,但您可以使用字符引用:"/".
但是,您不需要转义/包含在XML中.您可能必须将其包含在其他内容中,例如URI路径部分.但是你必须首先逃避它的格式; 获取URI的应用程序无法知道您是否在XML中对其进行了编码.
仅供参考,尽管斜杠是有效的XML,但请注意在下游如何使用它。我们将其用于连接到Azure Service Bus队列。Azure本身在连接字符串中生成带有斜杠的键,但是当我们尝试使用它们时,它会默默地断开。“/”
使它们逃脱使其正常工作
"Jim/Bob"