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

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 = gcnew 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();
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, dosyayı giriş olarak alır contosoBooks.xml .

<?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 Nesne geçerli düğüm ve alt düğümleriyle oluşturulduğunda, nesnenin XmlReader ReadState özelliği olarak Initialayarlanır. nesnesinin XmlReader Read yöntemi ilk kez çağrıldığında, XmlReader geçerli düğümüne XPathNavigatortaşınır. Yeni XmlReader nesne, XML ağacının sonuna ulaşılana kadar okumaya devam eder. Bu noktada yöntemi Read döndürür false ve nesnesinin ReadState XmlReader özelliği olarak EndOfFileayarlanır.

Not

Nesnesinin konumunu değiştirmek XmlReader , 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.

Not

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 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 XmlReader döndüren özel bir XmlResolver uygulayarak bu davranışı değiştirebilirsiniz.

Şunlara uygulanır