XmlConvert.EncodeName(String) 方法

定义

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

public:
 static System::String ^ EncodeName(System::String ^ name);
public static string EncodeName (string name);
public static string? EncodeName (string? name);
static member EncodeName : string -> string
Public Shared Function EncodeName (name As String) As String

参数

name
String

要转换的名称。

返回

String

任何无效的字符都由转义字符串替换。

示例

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

#using <System.dll>
#using <System.XML.dll>

using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
   
   // Encode and decode a name with spaces.
   String^ name1 = XmlConvert::EncodeName( "Order Detail" );
   Console::WriteLine( "Encoded name: {0}", name1 );
   Console::WriteLine( "Decoded name: {0}", XmlConvert::DecodeName( name1 ) );
   
   // Encode and decode a local name.
   String^ name2 = XmlConvert::EncodeLocalName( "a:book" );
   Console::WriteLine( "Encoded local name: {0}", name2 );
   Console::WriteLine( "Decoded local name: {0}", XmlConvert::DecodeName( name2 ) );
}
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));
  }
}
Imports System.IO
Imports System.Xml

public class Sample

  public shared sub Main()

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

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

  end sub
end class

注解

此方法转换无效字符(如空格或半角片假名),这些字符需要映射到 XML 名称,而无需支持或存在架构。 无效字符转换为转义的数字实体编码。

转义字符为“_”。 不符合 XML 1.0 规范的任何 XML 名称字符 (第四版) 建议 转义为 _xHHHH_。 HHHH 字符串代表字符的四位数十六进制 UCS-2 代码,以最重要的位第一个顺序表示。 例如,名称“订单详细信息”编码为 Order_x0020_Details。

下划线字符不需要转义,除非它后面跟有一个字符序列,并且在对名称解码时,该序列与下划线一起会被错误地解释为转义序列。 例如,订单_详细信息未编码,但 Order x0020_ 编码为 Order__x005f_x0020_。 不允许使用短格式。 例如,表单 _x20_ 且 __ 未生成。

此方法保证名称根据 XML 规范有效。 它允许任何位置的冒号,这意味着名称可能仍然无效,根据 W3C 命名空间规范。 为了保证它是一个有效的命名空间限定名称,用于 EncodeLocalName 前缀和本地名称部分,并将结果与冒号联接。

适用于

另请参阅