XmlNameTable Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Таблица атомизированных строковых объектов.
public ref class XmlNameTable abstract
public abstract class XmlNameTable
type XmlNameTable = class
Public MustInherit Class XmlNameTable
- Наследование
-
XmlNameTable
- Производный
Примеры
В следующем примере сравниваются два имени элементов.
// Add the element names to the NameTable.
NameTable nt = new NameTable();
object book = nt.Add("book");
object title = nt.Add("title");
// Create a reader that uses the NameTable.
XmlReaderSettings settings = new XmlReaderSettings();
settings.NameTable = nt;
XmlReader reader = XmlReader.Create("books.xml", settings);
while (reader.Read()) {
if (reader.NodeType == XmlNodeType.Element) {
// Cache the local name to prevent multiple calls to the LocalName property.
object localname = reader.LocalName;
// Do a comparison between the object references. This just compares pointers.
if (book == localname) {
// Add additional processing here.
}
// Do a comparison between the object references. This just compares pointers.
if (title == localname) {
// Add additional processing here.
}
}
} // End While
// Close the reader.
reader.Close();
' Add the element names to the NameTable.
Dim nt As New NameTable()
Dim book As Object = nt.Add("book")
Dim title As Object = nt.Add("title")
' Create a reader that uses the NameTable.
Dim settings As New XmlReaderSettings()
settings.NameTable = nt
Dim reader As XmlReader = XmlReader.Create("books.xml", settings)
While reader.Read()
If reader.NodeType = XmlNodeType.Element Then
' Cache the local name to prevent multiple calls to the LocalName property.
Dim localname As Object = reader.LocalName
' Do a comparison between the object references. This just compares pointers.
If book Is localname Then
' Add additional processing here.
End If
' Do a comparison between the object references. This just compares pointers.
If title Is localname Then
' Add additional processing here.
End If
End If
End While
' Close the reader.
reader.Close()
Комментарии
Несколько классов, таких как XmlDocument и XmlReader, используют XmlNameTable
класс внутри для хранения имен атрибутов и элементов. При неоднократном появлении имени атрибута или элемента в XML-документе оно сохраняется в XmlNameTable
только один раз.
Имена хранятся как типы объектов среды CLR. Это позволяет проводить сравнение объектов по этим строкам, а не выполнять построчное сравнение, на которое расходуется больше ресурсов. Эти строковые объекты называются атомизированными строками.
XmlNameTable
реализуется в NameTable классе.
Конструкторы
XmlNameTable() |
Инициализирует новый экземпляр класса XmlNameTable. |
Методы
Add(Char[], Int32, Int32) |
При переопределении в производном классе атомизирует заданную строку и добавляет ее в таблицу |
Add(String) |
При переопределении в производном классе атомизирует заданную строку и добавляет ее в таблицу |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Get(Char[], Int32, Int32) |
При переопределении в производном классе получает атомизированную строку, содержащую те же символы, что и заданный диапазон символов в заданном массиве. |
Get(String) |
При переопределении в производном классе получает атомизированную строку, содержащую то же значение, что и заданная строка. |
GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |