XPathNodeIterator Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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ı SelectXPathNavigator kullanarak XPathNodeIterator bir düğüm kümesi seçmek için sınıfının yöntemini kullanır.
XPathDocument^ document = gcnew 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);
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, dosyayı giriş olarak alır books.xml
.
<?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. Seçilen düğüm kümesindeki MoveNextXPathNodeIterator ilk düğümde nesneyi konumlandırmak XPathNodeIterator için sınıfının yöntemine bir çağrı yapılmalıdır.
kullanırken XPathNodeIterator, geçerli düğümü veya onun üst düğümlerinden herhangi birini düzenlerseniz geçerli konumunuz kaybolur. Seçtiğiniz bir dizi düğümü düzenlemek istiyorsanız, bir XPathNavigator dizi oluşturun, dizinindeki XPathNodeIterator tüm düğümleri 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())
{
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 listelemek için döndürülen IEnumerator arabirimi kullanmaktır:
for each (XPathNavigator^ n in nodeIterator)
Console::WriteLine(n->LocalName);
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 MoveNextGetEnumeratorgerekir. 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öntemin sonraki konumundan 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
XPathNodeIterator() |
XPathNodeIterator sınıfının yeni bir örneğini başlatır. |
Özellikler
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, geçerli bağlam düğümünde konumlandırılan bu XPathNodeIteratoriçin nesnesini alırXPathNavigator. |
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
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() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ 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 dizeyi döndürür. (Devralındığı yer: Object) |
Belirtik Arabirim Kullanımları
ICloneable.Clone() |
Geçerli örneğin kopyası olan yeni bir nesne oluşturur. |
Uzantı Metotları
Cast<TResult>(IEnumerable) |
öğesinin IEnumerable öğelerini belirtilen türe atar. |
OfType<TResult>(IEnumerable) |
Öğesinin IEnumerable öğelerini belirtilen türe göre filtreler. |
AsParallel(IEnumerable) |
Sorgunun paralelleştirilmesini etkinleştirir. |
AsQueryable(IEnumerable) |
bir IEnumerable öğesini öğesine IQueryabledönüştürür. |