System.Xml.XmlConvert.EncodeName 方法

方法描述

将名称转换为有效的 XML 名称。

语法定义(C# System.Xml.XmlConvert.EncodeName 方法 的用法)

public static string EncodeName(
	string name
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
name System-String 要转换的名称。
返回值 System.String 返回名称,任何无效的字符都由转义字符串替换。

提示和注释

此方法在没有架构支持或不存在架构的情况下转换需要映射到 XML 名称的无效字符(例如空格或半角片假名)。 这些无效字符转换成转义的数字实体编码。

转义字符是“_”。 任何不符合 W3C 可扩展标记语言 (XML) 1.0 规范的 XML 名称字符都被转义为 _xHHHH_。 HHHH 字符串表示该字符的四位十六进制 UCS-2 代码,其顺序为最高有效位排在最前面。 例如,名称 Order Details 被编码为 Order_x0020_Details。

不需要对下划线字符进行转义处理,除非在对名称进行解码时下划线后面的字符序列和该下划线一起可能被误解为转义序列。 例如,不对 Order_Details 进行编码,但 Order_x0020_ 会被编码为 Order_x005f_x0020_。 不允许使用缩写。 例如,不生成 _x20_ 和 __ 形式。

此方法确保名称是符合 XML 规范的有效名称。 它允许在任何位置使用冒号,这意味着根据 W3C 命名空间规范 (www.w3.org/TR/REC-xml-names),该名称仍有可能无效。 若要确保它是有效的命名空间限定名,请对前缀和本地名称部分使用 EncodeLocalName,然后将结果用冒号联接起来。

System.Xml.XmlConvert.EncodeName 方法例子

下面的示例对名称进行编码和解码。

using System;
using System.IO;
using System.Xml;

public class Sample
{

  public static void Main()
  {

     // Encode and decode a name with spaces.
     string name1 = XmlConvert.EncodeName("Order Detail");
     Console.WriteLine("Encoded name: " + name1);
     Console.WriteLine("Decoded name: " + XmlConvert.DecodeName(name1));

     // Encode and decode a local name.
     string name2 = XmlConvert.EncodeLocalName("a:book");
     Console.WriteLine("Encoded local name: " + name2);
     Console.WriteLine("Decoded local name: " + XmlConvert.DecodeName(name2));

  }
}

异常

异常 异常描述

命名空间

namespace: System.Xml

程序集: System.Xml(在 System.Xml.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。