XPathNavigator.ReadSubtree 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.
Retourneert een XmlReader object dat het huidige knooppunt en de onderliggende knooppunten bevat.
public:
virtual System::Xml::XmlReader ^ ReadSubtree();
public virtual System.Xml.XmlReader ReadSubtree();
abstract member ReadSubtree : unit -> System.Xml.XmlReader
override this.ReadSubtree : unit -> System.Xml.XmlReader
Public Overridable Function ReadSubtree () As XmlReader
Retouren
Een XmlReader object dat het huidige knooppunt en de onderliggende knooppunten bevat.
Uitzonderingen
Het XPathNavigator element bevindt zich niet op een elementknooppunt of het hoofdknooppunt.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de ReadSubtree methode gebruikt voor het eerste book element van het contosoBooks.xml bestand.
XPathDocument document = new XPathDocument("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();
navigator.MoveToChild("bookstore", "http://www.contoso.com/books");
navigator.MoveToChild("book", "http://www.contoso.com/books");
XmlReader reader = navigator.ReadSubtree();
while (reader.Read())
{
Console.WriteLine(reader.ReadInnerXml());
}
reader.Close();
Dim document As XPathDocument = New XPathDocument("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
navigator.MoveToChild("bookstore", "http://www.contoso.com/books")
navigator.MoveToChild("book", "http://www.contoso.com/books")
Dim reader As XmlReader = navigator.ReadSubtree()
While reader.Read()
Console.WriteLine(reader.ReadInnerXml())
End While
reader.Close()
In het voorbeeld wordt het contosoBooks.xml bestand als invoer gebruikt.
<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
<book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
Opmerkingen
Wanneer het XmlReader object wordt gecreƫerd met de huidige knoop en zijn kindknooppunten, wordt de XmlReader eigenschap van het ReadState object ingesteld op Initial. Wanneer de XmlReader-methode van het Read-object voor de eerste keer wordt aangeroepen, wordt het XmlReader verplaatst naar het huidige knooppunt van de XPathNavigator. Het nieuwe XmlReader object blijft lezen totdat het einde van de XML-structuur is bereikt. Op dit moment retourneert de Read-methode false en wordt de XmlReader-eigenschap van het ReadState-object ingesteld op EndOfFile.
Note
Het wijzigen van de positie van het XmlReader object heeft geen invloed op de positie van het XPathNavigatorobject.
Naamruimtedeclaraties voor de naamruimten binnen het bereik van het huidige knooppunt worden niet ingevoegd in de XML-stroom die aan het XmlReader object is verstrekt.
Note
Dit gedrag verschilt van de WriteSubtree methode.
Met deze methode maakt u het XmlReader object met specifieke lezerinstellingen en de module die deze methode gebruikt, heeft geen controle over deze instellingen. De lezer die door deze methode wordt geretourneerd, verbiedt bijvoorbeeld het verwerken van DTD's (Data Type Definitions). Als de lezer probeert een bestand te lezen dat gebruikmaakt van een DTD, treedt er een fout op. XmlException Het bericht voor de uitzondering is Unexpected DTD declaration.
U kunt dit gedrag wijzigen door een aangepaste XmlResolver waarde te implementeren die een XmlReader met het gewenste XmlReaderSettingsresultaat retourneert.