XPathNodeIterator.Current Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
При переопределении в производном классе получает XPathNavigator объект для этого XPathNodeIterator, расположенный на текущем узле контекста.
public:
abstract property System::Xml::XPath::XPathNavigator ^ Current { System::Xml::XPath::XPathNavigator ^ get(); };
public abstract System.Xml.XPath.XPathNavigator? Current { get; }
public abstract System.Xml.XPath.XPathNavigator Current { get; }
member this.Current : System.Xml.XPath.XPathNavigator
Public MustOverride ReadOnly Property Current As XPathNavigator
Значение свойства
XPathNavigator Объект, расположенный на узле контекста, из которого был выбран набор узлов. Метод MoveNext() должен вызываться для перемещения XPathNodeIterator на первый узел в выбранном наборе.
Примеры
В следующем примере возвращаются все названия книг, созданные Херманом Мелвиллем, с помощью Current свойства XPathNodeIterator объекта и Clone метода XPathNavigator класса.
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
// Select all books authored by Melville.
XPathNodeIterator nodes = navigator.Select("descendant::book[author/last-name='Melville']");
while (nodes.MoveNext())
{
// Clone the navigator returned by the Current property.
// Use the cloned navigator to get the title element.
XPathNavigator clone = nodes.Current.Clone();
clone.MoveToFirstChild();
Console.WriteLine("Book title: {0}", clone.Value);
}
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
' Select all books authored by Melville.
Dim nodes As XPathNodeIterator = navigator.Select("descendant::book[author/last-name='Melville']")
While nodes.MoveNext()
' Clone the navigator returned by the Current property.
' Use the cloned navigator to get the title element.
Dim clone As XPathNavigator = nodes.Current.Clone()
clone.MoveToFirstChild()
Console.WriteLine("Book title: {0}", clone.Value)
End While
Пример принимает файл 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>
Комментарии
Свойства возвращаемого XPathNavigator объекта можно использовать для получения сведений о текущем узле. Однако возвращаемый XPathNavigator объект не должен быть изменен. Возвращаемый XPathNavigator объект нельзя переместить из выбранного набора узлов.
Кроме того, можно клонировать XPathNavigator объект с помощью Clone метода XPathNavigator класса. Затем клонированные XPathNavigator объекты можно переместить из выбранного набора узлов. Этот метод клонирования XPathNavigator объекта может повлиять на производительность запроса XPath.
Если выбранные SelectAncestorsSelectDescendantsSelectChildren узлы и методы не приводят к выбору, Current свойство может не указывать на узел контекста.
Чтобы проверить, выбраны ли узлы, используйте Count свойство, как показано в следующем примере.