.net 在C#中使用XMLTextReader时如何转义XML字符串中的$

cwtwac6a  于 2023-02-01  发布在  .NET
关注(0)|答案(1)|浏览(166)

我有一个XML消息,类似于

<hello$1>hello</hello$1>

,其中标记名中包含$,则XMLTextReader将引发以下异常

{"The '$' character, hexadecimal value 0x24, cannot be included in a name. Line 1, position 12."}

在阅读XML内容时是否有方法转义$,因为源内容无法修改。

mspsb9vt

mspsb9vt1#

我相信,有些库使用的约定是用十六进制代码替换不允许使用的字符,如$:_x24_。以下是格式正确的XML:

<hello_x24_1>hello</hello_x24_1>

但更常见的解决方案是使用带有属性的通用元素名:

<greeting name="hello$1">hello</greeting>

(顺便说一句,禁止元素名中包含$的规则与C# XmlTextReader无关,它是XML的基本规则。)

相关问题