XPathNavigator.ReadSubtree Metódus

Definíció

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.

A következőre érvényes: