XmlNodeReader.ResolveEntity メソッド
アセンブリ: System.Xml (system.xml.dll 内)



![]() |
---|
Microsoft .NET Framework version 2.0 では、XmlReaderSettings クラスと Create メソッドを使用して XmlReader インスタンスを作成することをお勧めします。これにより、.NET Framework で導入されたすべての新機能を十分に活用できます。詳細については、「XML リーダーの作成」を参照してください。 |
リーダーが EntityReference ノード (XmlNodeType.EntityReference) に配置されている場合は、このメソッドを呼び出した後に Read を呼び出すと、エンティティ置換テキストが解析されます。エンティティ置換テキストが完成すると、EndEntity ノードが返され、エンティティ参照スコープを閉じます。
![]() |
---|
このメソッドを呼び出すと、エンティティが属性値の一部の場合は、ReadAttributeValue を呼び出して、エンティティを調べる必要があります。 |

ResolveEntity を使用して一般エンティティを展開する例を次に示します。
Option Explicit Option Strict Imports System Imports System.IO Imports System.Xml Public Class Sample Public Shared Sub Main() Dim reader As XmlNodeReader = Nothing Try 'Create and load an XML document. Dim doc As New XmlDocument() doc.LoadXml("<!DOCTYPE book [<!ENTITY h 'hardcover'>]>" & _ "<book>" & _ "<title>Pride And Prejudice</title>" & _ "<misc>&h;</misc>" & _ "</book>") 'Create the reader. reader = New XmlNodeReader(doc) reader.MoveToContent() 'Move to the root element. reader.Read() 'Move to title start tag. reader.Skip() 'Skip the title element. 'Read the misc start tag. The reader is now positioned on 'the entity reference node. reader.ReadStartElement() 'You must call ResolveEntity to expand the entity reference. 'The entity replacement text is then parsed and returned as a child node. Console.WriteLine("Expand the entity...") reader.ResolveEntity() Console.WriteLine("The entity replacement text is returned as a text node.") reader.Read() Console.WriteLine("NodeType: {0} Value: {1}", reader.NodeType, reader.Value) Console.WriteLine("An EndEntity node closes the entity reference scope.") reader.Read() Console.WriteLine("NodeType: {0} Name: {1}", reader.NodeType, reader.Name) Finally If Not (reader Is Nothing) Then reader.Close() End If End Try End Sub 'Main End Class 'Sample
using System; using System.IO; using System.Xml; public class Sample { public static void Main() { XmlNodeReader reader = null; try { //Create and load an XML document. XmlDocument doc = new XmlDocument(); doc.LoadXml("<!DOCTYPE book [<!ENTITY h 'hardcover'>]>" + "<book>" + "<title>Pride And Prejudice</title>" + "<misc>&h;</misc>" + "</book>"); //Create the reader. reader = new XmlNodeReader(doc); reader.MoveToContent(); //Move to the root element. reader.Read(); //Move to title start tag. reader.Skip(); //Skip the title element. //Read the misc start tag. The reader is now positioned on //the entity reference node. reader.ReadStartElement(); //You must call ResolveEntity to expand the entity reference. //The entity replacement text is then parsed and returned as a child node. Console.WriteLine("Expand the entity..."); reader.ResolveEntity(); Console.WriteLine("The entity replacement text is returned as a text node."); reader.Read(); Console.WriteLine("NodeType: {0} Value: {1}", reader.NodeType ,reader.Value); Console.WriteLine("An EndEntity node closes the entity reference scope."); reader.Read(); Console.WriteLine("NodeType: {0} Name: {1}", reader.NodeType,reader.Name); } finally { if (reader != null) reader.Close(); } } }
#using <System.Xml.dll> using namespace System; using namespace System::IO; using namespace System::Xml; int main() { XmlNodeReader^ reader = nullptr; try { //Create and load an XML document. XmlDocument^ doc = gcnew XmlDocument; doc->LoadXml( "<!DOCTYPE book [<!ENTITY h 'hardcover'>]>" "<book>" "<title>Pride And Prejudice</title>" "<misc>&h;</misc>" "</book>" ); //Create the reader. reader = gcnew XmlNodeReader( doc ); reader->MoveToContent(); //Move to the root element. reader->Read(); //Move to title start tag. reader->Skip(); //Skip the title element. //Read the misc start tag. The reader is now positioned on //the entity reference node. reader->ReadStartElement(); //You must call ResolveEntity to expand the entity reference. //The entity replacement text is then parsed and returned as a child node. Console::WriteLine( "Expand the entity..." ); reader->ResolveEntity(); Console::WriteLine( "The entity replacement text is returned as a text node." ); reader->Read(); Console::WriteLine( "NodeType: {0} Value: {1}", reader->NodeType, reader->Value ); Console::WriteLine( "An EndEntity node closes the entity reference scope." ); reader->Read(); Console::WriteLine( "NodeType: {0} Name: {1}", reader->NodeType, reader->Name ); } finally { if ( reader != nullptr ) reader->Close(); } }
import System.*; import System.IO.*; import System.Xml.*; public class Sample { public static void main(String[] args) { XmlNodeReader reader = null; try { //Create and load an XML document. XmlDocument doc = new XmlDocument(); doc.LoadXml("<!DOCTYPE book [<!ENTITY h 'hardcover'>]>" + "<book>" + "<title>Pride And Prejudice</title>" + "<misc>&h;</misc>" + "</book>"); //Create the reader. reader = new XmlNodeReader(doc); reader.MoveToContent(); //Move to the root element. reader.Read(); //Move to title start tag. reader.Skip(); //Skip the title element. //Read the misc start tag. The reader is now positioned on //the entity reference node. reader.ReadStartElement(); //You must call ResolveEntity to expand the entity reference. //The entity replacement text is then parsed //and returned as a child node. Console.WriteLine("Expand the entity..."); reader.ResolveEntity(); Console.WriteLine("The entity replacement text is returned " + "as a text node."); reader.Read(); Console.WriteLine("NodeType: {0} Value: {1}",reader.get_NodeType() , reader.get_Value()); Console.WriteLine("An EndEntity node closes the " + "entity reference scope."); reader.Read(); Console.WriteLine("NodeType: {0} Name: {1}", reader.get_NodeType(), reader.get_Name()); } finally { if (reader != null) { reader.Close(); } } } //main } //Sample

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からXmlNodeReader.ResolveEntity メソッドを検索する場合は、下記のリンクをクリックしてください。

- XmlNodeReader.ResolveEntity メソッドのページへのリンク