XPathNavigator.ReadSubtree Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
XmlReader Az aktuális csomópontot és annak gyermekcsomópontjait tartalmazó objektumot ad vissza.
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
Válaszok
Az XmlReader aktuális csomópontot és annak gyermekcsomópontjait tartalmazó objektum.
Kivételek
Ez XPathNavigator nem elemcsomóponton vagy gyökércsomóponton van elhelyezve.
Példák
Az alábbi példa a ReadSubtree fájl első book elemének metódusát szemlélteti contosoBooks.xml .
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()
A példa bemenetként használja a contosoBooks.xml fájlt.
<?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>
Megjegyzések
Amikor az objektum az XmlReader aktuális csomóponttal és annak gyermekcsomópontjaival jön létre, az XmlReader objektum tulajdonsága ReadState a következőre Initialvan állítva: . Amikor az XmlReader objektum Read metódusát először hívják meg, a XmlReader átkerül a XPathNavigator aktuális csomópontjára. Az új XmlReader objektum olvasása az XML-fa végéig folytatódik. Ekkor a Read metódus visszatér false, és az XmlReader objektum ReadState tulajdonsága EndOfFile értékre van állítva.
Note
Az objektum pozíciójának XmlReader módosítása nem befolyásolja a XPathNavigator.
Az aktuális csomópont hatókörön belüli névtereinek névtér-deklarációi nem lesznek beszúrva az XmlReader objektumnak biztosított XML-adatfolyamba.
Note
Ez a viselkedés eltér a WriteSubtree metódustól.
Ez a metódus meghatározott olvasóbeállításokkal hozza létre az XmlReader objektumot, és a metódust használó modul nem szabályozza ezeket a beállításokat. Az ezzel a módszerrel visszaadott olvasó például tiltja az adattípus-definíciók (DTD-k) feldolgozását. Ha az olvasó megpróbál beolvasni egy DTD-t használó fájlt, az hibát jelez. XmlException A kivétel üzenete a következő lesz Unexpected DTD declaration: .
Ezt a viselkedést úgy módosíthatja, hogy olyan egyénit XmlResolver implementál, amely a kívánt XmlReaderértéket adja visszaXmlReaderSettings.