System.Xml.XmlConvert 类
本文提供了此 API 参考文档的补充说明。
XmlConvert 类在功能上等效于 Convert 类,但它支持 XML 标准。 类型系统基于 XML 架构定义语言 (XSD) 架构类型,并且返回的值总是与区域设置无关。
编码和解码
根据 W3C XML 1.0 建议,元素和属性名称或 ID 值被限制为一系列 XML 字符。 当名称包含无效字符时,可以使用此类中的 EncodeName 和 DecodeName 方法将它们转换为有效的 XML 名称。
例如,如果要在数据库中使用列标题“Order Detail”,则数据库允许这两个单词之间有空格。 但是,在 XML 中,“Order”和“Detail”之间的空格会被视为无效的 XML 字符。 必须将它转换为转义的十六进制编码,然后对其进行解码。
可以将 EncodeName 方法与 XmlWriter 类一起使用,以确保所写入的名称是有效的 XML 名称。 以下 C# 代码将名称“Order Detail”转换为有效的 XML 名称并写入元素 <Order_0x0020_Detail>My order</Order_0x0020_Detail>
。
writer.WriteElementString(XmlConvert.EncodeName("Order Detail"),"My order");
以下 XmlConvert 方法可执行编码和解码。
方法 | 说明 |
---|---|
EncodeName | 获取一个名称,并返回编码的名称以及由转义字符串替换的任何无效字符。 此方法允许冒号位于任何位置,这意味着根据 W3C XML 1.0 中的命名空间建议,名称可能仍然无效。 |
EncodeNmToken | 获取一个名称并返回编码的名称。 |
EncodeLocalName | 与 EncodeName 相同,但它还对冒号进行编码,确保该名称可以作为命名空间限定名的 LocalName 部分使用。 |
DecodeName | 反转对所有编码方法的转换。 |
名称验证
XmlConvert 类包含两种方法,这些方法可检查元素或属性名称中的字符,并验证名称是否符合 W3C XML 1.0 建议所设置的规则:
- VerifyName 可检查字符并验证名称是否有效。 如果名称有效,则该方法将返回该名称,如果名称无效,则会引发异常。
- VerifyNCName 可执行相同的验证,但接受非限定名称。
XmlConvert 包含用于验证令牌、空白字符、公共 ID 和其他字符串的其他方法。
数据类型转换
XmlConvert 还提供了各种方法,使你能够将数据从字符串转换为强类型化数据类型。 例如,ToDateTime 方法可将字符串转换为其 DateTime 等效项。 这样做很有用,因为 XmlReader 类中的大多数方法都将数据作为字符串返回。 读取数据后,可以在使用数据前将其转换为正确的数据类型。 ToString 重载通过将强类型化数据转换为字符串来提供补充操作。 例如,如果要将数据添加到网页上的文本框,这非常有用。 数据转换期间不会考虑区域设置。 数据类型基于 XML 架构 (XSD) 数据类型。