使用 XmlNameTable 和 XmlReader 來比較物件
在 XML 文件上剖析資料或是執行比較作業時,XmlNameTable 類別可讓 XmlReader 類別的實作能夠使用指標比較,而不是字串比較。在比較並使用項目和屬性名稱時,使用這個表格可提升 XmlReader 衍生類別的效能。因為每個項目或屬性名稱j都只會配置一次,所以 XmlNameTable 也可降低剖析期間所配置的記憶體數量。若 XML 文件中有相同的名稱重複產生,則會使用儲存名稱的同一個字串物件執行個體。
![]() |
---|
在 Microsoft .NET Framework 2.0 版本 中,建議您使用 XmlReaderSettings 類別與 Create 方法來建立 XmlReader 執行個體。如此可讓您充分利用 .NET Framework 所推出的所有新功能。如需詳細資訊,請參閱建立 XML 讀取器。 |
使用 XmlNameTable
XmlNameTable 是一個抽象基底類別,以 NameTable 做為實作。NameTable 包含項目和屬性名稱的原子化版本,並附帶命名空間 URI 和前置詞。如果應用程式正在進行許多項目或屬性名稱的比較,則該應用程式應使用 XmlReader 的 NameTable。使用者可從 System.Xml.XmlReader.NameTable 屬性取得讀取器正在使用的 NameTable。如需原子化的相關說明,請參閱 XmlNameTable。
應用程式可使用 Add 方法在資料表上加入名稱。下列範例顯示接著會使用 Equals 方法或 == 運算子來執行的比較,以判斷方法呼叫中所提供的物件是否是與目前物件相同的執行個體。
Dim cust As Object = reader.NameTable.Add("Customer")
While reader.Read()
' The "if" uses efficient pointer comparison.
If cust Is reader.Name Then
...
End If
End While
object cust = reader.NameTable.Add("Customer");
while (reader.Read())
{
// The "if" uses efficient pointer comparison.
if (cust == reader.Name)
{
...
}
}