XmlConvert 是 .NET 中专注 XML 字符串与 CLR 类型安全转换的核心类,严格遵循 W3C XML Schema 标准,支持布尔、整数、日期、浮点等类型双向转换,并提供 XML 名称编码、解码及文本转义功能。
XmlConvert 是 .NET 中用于在 XML 字符串和 .NET 类型之间安全转换的核心类,主要解决 XML 规范与 CLR 类型在格式、范围、精度上的差异问题(比如日期格式、布尔值大小写、数值溢出等)。它不负责解析或生成 XML 文档,而是专注“值级”转换,确保符合 W3C XML Schema 定义。
字符串与基础类型互转
这是最常用的一组方法,严格按 XML Schema 标准进行解析和格式化:
-
ToBoolean(string):只接受
"true"或"false"(区分大小写),不接受"1"、"0"或空字符串;对应 ToString(bool) 输出小写形式 -
ToInt32(string) 和 ToString(int):支持带符号十进制整数,超出
int范围会抛FormatException;不支持十六进制或科学计数法 - ToDateTime(string):严格解析 ISO 8601 格式(如
"2025-04-05T14:30:00Z"、"2025-04-05"),不识别中文或自定义格式;ToString(DateTime) 默认输出带时区的完整格式 -
ToDouble(string) 和 ToString(double):支持
"INF"、"-INF"、"NaN"等 XML 特殊浮点值,普通数字则按标准格式化
处理 XML 特殊字符与名称
用于构造合法的 XML 内容或标识符,避免手动拼接出错:
-
EncodeName(string):把任意字符串转为合法的 XML 名称(如将
"my-name"→"my_x002d_name"),适合动态生成元素/属性名 - DecodeName(string):逆向还原编码后的名称
-
Escape(string):对文本内容中的
、&、"等做实体编码("a →"a),适用于写入文本节点 - Unescape(string):解码已编码的文本(如从 XML 读取后还原)
字节数组与 Base64 / Hex 转换
对接 XML Schema 中的 base64Binary 和 hexBinary 类型:
- ToBase64(byte[]) 和 ToHex(byte[]):将字节数组转为标准 Base64 或十六进制字符串(无前缀、全小写)
- FromBase64(string) 和 FromHex(string):严格校验输入格式,非法字符或长度错误直接抛异常
时区与精度控制(.NET 5+ 增强)
新版增加了对时区偏移和日期精度的显式支持:
-
ToString(DateTime, XmlDateTimeSerializationMode):可指定
RoundTrip(保留原始精度)、Local、Utc模式 - ToDateTime(string, XmlDateTimeSerializationMode):配合字符串解析,明确时区处理逻辑
- 所有时间方法默认使用
DateTimeKind.Unspecified,需自行判断上下文

转换的核心类,严格遵循 W3C XML Schema 标准,支持布尔、整数、日期、浮点等类型双向转换,并提供 XML 名称编码、解码及文本转义功能。






