ITPub博客

首页 > Linux操作系统 > Linux操作系统 > System.Xml的NameTable 类介绍

System.Xml的NameTable 类介绍

原创 Linux操作系统 作者:iDotNetSpace 时间:2008-01-22 18:27:17 0 删除 编辑

实现单线程 XmlNameTable

命名空间:System.Xml
程序集:System.Xml(在 system.xml.dll 中)

Visual Basic(声明)
Public Class NameTable
    Inherits XmlNameTable
Visual Basic(用法)
Dim instance As NameTable
C#
public class NameTable : XmlNameTable
C++
public ref class NameTable : public XmlNameTable
J#
public class NameTable extends XmlNameTable
JScript
public class NameTable extends XmlNameTable

有些类(如 XmlDocumentXmlReader)在内部使用 NameTable 类存储属性名和元素名。当 XML 文档中多次出现某个元素名或属性名时,该名称在 NameTable 中只存储一次。

这些名称存储为公共语言运行库 (CLR) 对象类型。这使您能够对这些字符串进行对象比较,而不是开销更大的字符串比较。这些字符串对象被称为原子化字符串。

下面的示例比较两个元素名。

Visual Basic
Dim nt As NameTable  = New NameTable()
Dim book As object = nt.Add("book")
Dim price As object = nt.Add("price")

' Create the reader.
Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.NameTable = nt
Dim reader As XmlReader = XmlReader.Create("books.xml", settings)

reader.MoveToContent()
reader.ReadToDescendant("book")

 If (System.Object.ReferenceEquals(book, reader.Name)) 
     ' Do additional processing.
 End If
 
NameTable nt = new NameTable();
object book = nt.Add("book");
object price = nt.Add("price");

// Create the reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.NameTable = nt;
XmlReader reader = XmlReader.Create("books.xml", settings);

reader.MoveToContent();
reader.ReadToDescendant("book");

 if (System.Object.ReferenceEquals(book, reader.Name)) {
     // Do additional processing.
 }

NameTable^ nt = gcnew NameTable;
Object^ book = nt->Add( "book" );
Object^ price = nt->Add( "price" );

// Create the reader.
XmlReaderSettings ^ settings = gcnew XmlReaderSettings;
settings->NameTable = nt;
XmlReader^ reader = XmlReader::Create( (String^)"books.xml", settings );
reader->MoveToContent();
reader->ReadToDescendant( "book" );
if ( System::Object::ReferenceEquals( book, reader->Name ) )
{
   
   // Do additional processing.
}
//Create the reader.
XmlTextReader rdr = new XmlTextReader("book.xml");
NameTable nt = new NameTable();
String name = nt.Add("book");

while (rdr.Read()) {
}
if (rdr.get_NameTable().Get("book").Equals(name)) {
    Console.WriteLine("matches!");
}
System.Object
   System.Xml.XmlNameTable
    System.Xml.NameTable
此类型的任何公共静态(Visual Basic 中的 Shared)成员都是线程安全的,但不保证所有实例成员都是线程安全的。

Windows 98、Windows 2000 SP4、Windows CE、Windows Millennium Edition、Windows Mobile for Pocket PC、Windows Mobile for Smartphone、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition

.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-157084/,如需转载,请注明出处,否则将追究法律责任。

下一篇: XmlComment 类介绍
请登录后发表评论 登录
全部评论

注册时间:2008-01-04

最新文章