我有一个XML消息,类似于
<hello$1>hello</hello$1>
,其中标记名中包含$,则XMLTextReader将引发以下异常
{"The '$' character, hexadecimal value 0x24, cannot be included in a name. Line 1, position 12."}
在阅读XML内容时是否有方法转义$,因为源内容无法修改。
mspsb9vt1#
我相信,有些库使用的约定是用十六进制代码替换不允许使用的字符,如$:_x24_。以下是格式正确的XML:
_x24_
<hello_x24_1>hello</hello_x24_1>
但更常见的解决方案是使用带有属性的通用元素名:
<greeting name="hello$1">hello</greeting>
(顺便说一句,禁止元素名中包含$的规则与C# XmlTextReader无关,它是XML的基本规则。)
$
1条答案
按热度按时间mspsb9vt1#
我相信,有些库使用的约定是用十六进制代码替换不允许使用的字符,如$:
_x24_
。以下是格式正确的XML:但更常见的解决方案是使用带有属性的通用元素名:
(顺便说一句,禁止元素名中包含
$
的规则与C# XmlTextReader无关,它是XML的基本规则。)