XmlReader と XmlNameTable によるオブジェクトの比較
XmlReader クラスの実装で XmlNameTable クラスを使用すると、XML ドキュメントのデータ解析や比較操作を実行するとき、文字列比較の代わりにポインタ比較を使用できます。このテーブルを使用すると、要素名および属性名を比較したり使用するときの XmlReader 派生クラスのパフォーマンスが向上します。
XmlNameTable は抽象基本クラスであり、実装として NameTable があります。NameTable は、分解されたバージョンの要素名と属性名を、名前空間 URI およびプリフィックスと共に格納します。アプリケーションで頻繁に名前の比較を実行する場合は、NameTable を作成できます。リーダーが使用している 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
[C#]
object cust = reader.NameTable.Add("Customer");
while (reader.Read())
{
// The "if" uses efficient pointer comparison.
if (cust == reader.Name)
{
...
}
}
メソッドの詳細については、「XmlNameTable メンバ」を参照してください。
参照
XmlReader による XML の読み取り | XmlReader における現在のノードの位置 | XmlReader のプロパティ設定 | XmlReader による属性の読み取り | 要素および属性のコンテンツの読み取り | XmlReader によるコンテンツのスキップ | EntityReference の読み取りと展開 | XmlReader と SAX リーダーの比較 | XmlTextReader による XML データの読み取り | XmlNodeReader によるノード ツリーの読み取り | XmlValidatingReader による XML の検証 | カスタマイズされた XML リーダーの作成 | XmlReader クラス | XmlReader メンバ | XmlNodeReader クラス | XmlNodeReader メンバ | XmlTextReader クラス | XmlTextReader メンバ | XmlValidatingReader クラス | XmlValidatingReader メンバ