EntityReference の読み取りと展開

XML データの読み込み時に文字参照とエンティティ参照を展開し、展開されたテキストを返す機能があるかどうかは、データの読み取りに使用する XmlReader のタイプに依存します。

XmlValidatingReader には ExpandEntities または ExpandCharEntities という EntityHandling プロパティ列挙値が定義されており、既定の設定は ExpandEntities です。ExpandEntities の場合は、文字参照とエンティティ参照の両方が展開されます。ExpandCharEntities の場合は文字参照だけを展開し、エンティティ参照は一般的なノードとして返します。エンティティ参照のコンテンツを展開して取得するには、ResolveEntity を呼び出す必要があります。

XmlNodeReader には、参照を解決するために呼び出される ResolveEntity メソッドが用意されています。XmlTextReader はエンティティを解決できません。XmlTextReaderResolveEntity を呼び出すと、例外がスローされます。特定の XmlReader にエンティティを解決する機能があるかどうかを判定するには、XmlReader.CanResolveEntity プロパティを調べます。

参照

XmlReader による XML の読み取り | XmlReader における現在のノードの位置 | XmlReader のプロパティ設定 | XmlReader と XmlNameTable によるオブジェクトの比較 | XmlReader による属性の読み取り | 要素および属性のコンテンツの読み取り | XmlReader によるコンテンツのスキップ | XmlReader と SAX リーダーの比較 | XmlTextReader による XML データの読み取り | XmlNodeReader によるノード ツリーの読み取り | XmlValidatingReader による XML の検証 | カスタマイズされた XML リーダーの作成 | XmlReader クラス | XmlReader メンバ | XmlNodeReader クラス | XmlNodeReader メンバ | XmlTextReader クラス | XmlTextReader メンバ | XmlValidatingReader クラス | XmlValidatingReader | EntityHandling プロパティ | ResolveEntity メソッド