XmlConvert.EncodeName(String) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將名稱轉換為有效的 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
要轉譯的名稱。
傳回
具有以逸出字元取代之任何無效字元的名稱。
範例
下列範例會編碼和解碼名稱。
#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 前置詞和區功能變數名稱稱部分,並以冒號聯結結果。