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 Details 名稱會編碼為 Order _ x0020 _ Details。

除非底線字元後面跟著和底線連在一起,使得解碼該名稱時會被誤認為逸出序列 (Escape Sequence) 的字元序列,否則並不需要逸出該底線字元。 例如,訂單 _ 詳細資料不會編碼,但 Order _ x0020 _ 會編碼為 Order _ x005f _ x0020 _ 。 不允許使用短格式。 例如,不會產生表單 _ x20 _ 和 _ _ 。

這個方法會根據 XML 規格保證名稱有效。 它允許任何位置的冒號,這表示名稱可能根據 W3C 命名空間規格仍然無效。 若要保證它是有效的命名空間限定名稱,用於 EncodeLocalName 前置詞和區功能變數名稱稱部分,並以冒號聯結結果。

適用於

另請參閱