XmlNodeReader.ResolveEntity Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt de entiteitsreferentie voor EntityReference knooppunten omgezet.
public:
override void ResolveEntity();
public override void ResolveEntity();
override this.ResolveEntity : unit -> unit
Public Overrides Sub ResolveEntity ()
Uitzonderingen
De lezer bevindt zich niet op een EntityReference knooppunt.
Voorbeelden
In het volgende voorbeeld wordt een ResolveEntity algemene entiteit uitgebreid.
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();
}
}
}
Option Explicit
Option Strict
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
End Class
Opmerkingen
Note
Als u wilt profiteren van nieuwere functies, is het raadzaam om exemplaren te maken XmlReader met behulp van de XmlReaderSettings klasse en de Create methode. Zie de sectie Opmerkingen op de XmlReader referentiepagina voor meer informatie.
Als de lezer op een EntityReference knooppuntXmlNodeType.EntityReference () Read wordt aangeroepen nadat deze methode is aangeroepen, wordt de vervangende tekst van de entiteit geparseerd. Wanneer de vervangende tekst van de entiteit is voltooid, wordt er een EndEntity knooppunt geretourneerd om het bereik van de entiteitsverwijzing te sluiten.
Note
Als de entiteit deel uitmaakt van een kenmerkwaarde, moet u na het aanroepen van deze methode de entiteit inschakelen ReadAttributeValue .