Aracılığıyla paylaş


XPathNodeIterator Sınıf

Tanım

Seçili düğüm kümesi üzerinde yineleyici sağlar.

public ref class XPathNodeIterator abstract : ICloneable, System::Collections::IEnumerable
public ref class XPathNodeIterator abstract : System::Collections::IEnumerable
public ref class XPathNodeIterator abstract : ICloneable
public abstract class XPathNodeIterator : ICloneable, System.Collections.IEnumerable
public abstract class XPathNodeIterator : System.Collections.IEnumerable
public abstract class XPathNodeIterator : ICloneable
type XPathNodeIterator = class
    interface IEnumerable
    interface ICloneable
type XPathNodeIterator = class
    interface IEnumerable
type XPathNodeIterator = class
    interface ICloneable
type XPathNodeIterator = class
    interface ICloneable
    interface IEnumerable
Public MustInherit Class XPathNodeIterator
Implements ICloneable, IEnumerable
Public MustInherit Class XPathNodeIterator
Implements IEnumerable
Public MustInherit Class XPathNodeIterator
Implements ICloneable
Devralma
XPathNodeIterator
Uygulamalar

Örnekler

Aşağıdaki örnek, sınıfını Select kullanarak XPathNodeIterator bir düğüm kümesi seçmek için sınıfının yöntemini XPathNavigator kullanır.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathNodeIterator nodes = navigator.Select("/bookstore/book");
nodes.MoveNext();
XPathNavigator nodesNavigator = nodes.Current;

XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);

while (nodesText.MoveNext())
    Console.WriteLine(nodesText.Current.Value);
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim nodes As XPathNodeIterator = navigator.Select("/bookstore/book")
nodes.MoveNext()
Dim nodesNavigator As XPathNavigator = nodes.Current

Dim nodesText As XPathNodeIterator = nodesNavigator.SelectDescendants(XPathNodeType.Text, False)

While nodesText.MoveNext()
    Console.WriteLine(nodesText.Current.Value)
End While

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

<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
    <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

sınıfı tarafından XPathNavigator döndürülen bir XPathNodeIterator nesne, seçilen düğüm kümesindeki ilk düğüme konumlandırılmaz. Nesnesini seçilen düğüm kümesindeki MoveNextXPathNodeIterator ilk düğüme konumlandırmak XPathNodeIterator için sınıfın yöntemine bir çağrı yapılmalıdır.

kullanırken XPathNodeIteratorgeçerli düğümü veya üst düğümlerinden herhangi birini düzenlerseniz geçerli konumunuz kaybolur. Seçtiğiniz birkaç düğümü düzenlemek istiyorsanız, bir XPathNavigator dizi oluşturun, dizinindeki tüm düğümleri XPathNodeIterator diziye kopyalayın, ardından dizide yineleme yapın ve düğümleri değiştirin.

sınıfını kullanarak XPathNodeIterator bir XPathNavigator koleksiyon üzerinde yineleme yapmanın iki yolu vardır.

Yöntemlerden biri yöntemini kullanmak MoveNext ve ardından aşağıdaki örnekte olduğu gibi geçerli XPathNavigator örneği almak için çağrısı Current yapmaktır:

while (nodeIterator.MoveNext())
{
    XPathNavigator n = nodeIterator.Current;
    Console.WriteLine(n.LocalName);
}
While nodeIterator.MoveNext()
    Dim n As XPathNavigator = nodeIterator.Current
    Console.WriteLine(n.LocalName)
End While

Bir diğer yol da yöntemini çağırmak GetEnumerator için bir foreach döngü kullanmak ve aşağıdaki örnekte olduğu gibi düğümleri numaralandırmak için döndürülen IEnumerator arabirimi kullanmaktır:

foreach (XPathNavigator n in nodeIterator)
    Console.WriteLine(n.LocalName);
For Each n As XPathNavigator In nodeIterator
    Console.WriteLine(nav.LocalName)
Next

ve Current veya kullanmanız GetEnumeratorgerekirMoveNext. Bu iki yaklaşımın birleştirilmesi beklenmeyen sonuçlara neden olabilir. Örneğin, yöntem önce çağrılır ve ardından yöntem döngüde foreach çağrılırsaMoveNext, foreach döngü sonuçları koleksiyonun başından değil, yöntemden sonraki konumdan numaralandırmaya Current başlar.GetEnumerator

Uygulayanlara Notlar

sınıfından XPathNodeIterator devraldığınızda, aşağıdaki üyeleri geçersiz kılmanız gerekir:

Oluşturucular

Name Description
XPathNodeIterator()

XPathNodeIterator sınıfının yeni bir örneğini başlatır.

Özellikler

Name Description
Count

Seçili düğüm kümesindeki son düğümün dizinini alır.

Current

Türetilmiş bir sınıfta geçersiz kılındığında, XPathNavigator bunun XPathNodeIteratornesnesini geçerli bağlam düğümünde konumlandırır.

CurrentPosition

Türetilmiş bir sınıfta geçersiz kılındığında, seçili düğüm kümesindeki geçerli konumun dizinini alır.

Yöntemler

Name Description
Clone()

Türetilmiş bir sınıfta geçersiz kılındığında, bu XPathNodeIterator nesnenin bir kopyasını döndürür.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetEnumerator()

Seçili düğüm kümesinde yinelemek için bir IEnumerator nesne döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Geçerli örneğin Type alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectbasit bir kopyasını oluşturur.

(Devralındığı yer: Object)
MoveNext()

Türetilmiş bir sınıfta geçersiz kılındığında, özelliği tarafından Current döndürülen nesneyi seçili düğüm kümesindeki bir sonraki düğüme taşırXPathNavigator.

ToString()

Geçerli nesneyi temsil eden bir dize döndürür.

(Devralındığı yer: Object)

Belirtik Arabirim Kullanımları

Name Description
ICloneable.Clone()

Geçerli örneğin kopyası olan yeni bir nesne oluşturur.

Uzantı Metotları

Name Description
AsParallel(IEnumerable)

Sorgunun paralelleştirilmesini etkinleştirir.

AsQueryable(IEnumerable)

bir IEnumerable öğesine IQueryabledönüştürür.

Cast<TResult>(IEnumerable)

öğesinin IEnumerable öğelerini belirtilen türe yazar.

OfType<TResult>(IEnumerable)

Belirtilen türe göre bir IEnumerable öğesinin öğelerini filtreler.

Şunlara uygulanır