Aracılığıyla paylaş


XPathNavigator.ReadSubtree Yöntem

Tanım

Geçerli düğümü ve alt düğümlerini içeren bir XmlReader nesne döndürür.

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

Döndürülenler

XmlReader Geçerli düğümü ve alt düğümlerini içeren bir nesne.

Özel durumlar

XPathNavigator bir öğe düğümünde veya kök düğümde konumlandırılmaz.

Örnekler

Aşağıdaki örnekte, dosyasının ReadSubtree ilk book öğesinde yönteminin kullanılması gösterilmektedir 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()

Örnek, contosoBooks.xml dosyasını giriş olarak alır.

<?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>

Açıklamalar

XmlReader nesnesi geçerli düğüm ve alt düğümleriyle oluşturulduğunda, XmlReader nesnesinin ReadState özelliği Initial olarak ayarlanır. İlk kez XmlReader nesnesinin Read yöntemi çağrıldığında, XmlReaderXPathNavigator'ün geçerli düğümüne taşınır. Yeni XmlReader nesne, XML ağacının sonuna ulaşılana kadar okumaya devam eder. Bu noktada Read yöntemi false döndürür ve XmlReader nesnesinin ReadState özelliği EndOfFile olarak ayarlanır.

Uyarı

Nesnenin XmlReader konumunun değiştirilmesi, konumunu XPathNavigatoretkilemez.

Geçerli düğümün kapsam içi ad alanları için ad alanı bildirimleri, nesneye sağlanan XML akışına XmlReader eklenmez.

Uyarı

Bu davranış yönteminden WriteSubtree farklıdır.

Bu yöntem, nesneyi belirli okuyucu ayarlarıyla oluşturur XmlReader ve bu yöntemi kullanan modülün bu ayarlar üzerinde hiçbir denetimi yoktur. Örneğin, bu yöntem tarafından döndürülen okuyucu Veri Türü Tanımlarının (DTD) işlenmesini yasaklar. Okuyucu DTD kullanan bir dosyayı okumayı denerse, bir hata oluşturur. XmlException Özel durum iletisi olacaktır Unexpected DTD declaration.

İstenen XmlReaderSettingsile bir döndüren XmlReader özel XmlResolver bir uygulayarak bu davranışı değiştirebilirsiniz.

Şunlara uygulanır