XPathNavigator.SelectAncestors Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Selects all the ancestor nodes of the current node that match the selection criteria.
Overloads
SelectAncestors(XPathNodeType, Boolean) |
Selects all the ancestor nodes of the current node that have a matching XPathNodeType. |
SelectAncestors(String, String, Boolean) |
Selects all the ancestor nodes of the current node that have the specified local name and namespace URI. |
SelectAncestors(XPathNodeType, Boolean)
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
Selects all the ancestor nodes of the current node that have a matching XPathNodeType.
public:
virtual System::Xml::XPath::XPathNodeIterator ^ SelectAncestors(System::Xml::XPath::XPathNodeType type, bool matchSelf);
public virtual System.Xml.XPath.XPathNodeIterator SelectAncestors (System.Xml.XPath.XPathNodeType type, bool matchSelf);
abstract member SelectAncestors : System.Xml.XPath.XPathNodeType * bool -> System.Xml.XPath.XPathNodeIterator
override this.SelectAncestors : System.Xml.XPath.XPathNodeType * bool -> System.Xml.XPath.XPathNodeIterator
Public Overridable Function SelectAncestors (type As XPathNodeType, matchSelf As Boolean) As XPathNodeIterator
Parameters
- type
- XPathNodeType
The XPathNodeType of the ancestor nodes.
- matchSelf
- Boolean
To include the context node in the selection, true
; otherwise, false
.
Returns
An XPathNodeIterator that contains the selected nodes. The returned nodes are in reverse document order.
Examples
For an example of selecting ancestor nodes, see XPathNavigator.SelectAncestors.
Remarks
The SelectAncestors method has no effect on the state of the XPathNavigator.
See also
Applies to
SelectAncestors(String, String, Boolean)
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
Selects all the ancestor nodes of the current node that have the specified local name and namespace URI.
public:
virtual System::Xml::XPath::XPathNodeIterator ^ SelectAncestors(System::String ^ name, System::String ^ namespaceURI, bool matchSelf);
public virtual System.Xml.XPath.XPathNodeIterator SelectAncestors (string name, string namespaceURI, bool matchSelf);
abstract member SelectAncestors : string * string * bool -> System.Xml.XPath.XPathNodeIterator
override this.SelectAncestors : string * string * bool -> System.Xml.XPath.XPathNodeIterator
Public Overridable Function SelectAncestors (name As String, namespaceURI As String, matchSelf As Boolean) As XPathNodeIterator
Parameters
- name
- String
The local name of the ancestor nodes.
- namespaceURI
- String
The namespace URI of the ancestor nodes.
- matchSelf
- Boolean
To include the context node in the selection, true
; otherwise, false
.
Returns
An XPathNodeIterator that contains the selected nodes. The returned nodes are in reverse document order.
Exceptions
null
cannot be passed as a parameter.
Examples
The following example illustrates selecting ancestor, child, and descendant nodes.
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");
// Select all the descendant nodes of the book node.
XPathNodeIterator^ bookDescendants = navigator->SelectDescendants("", "http://www.contoso.com/books", false);
// Display the LocalName of each descendant node.
Console::WriteLine("Descendant nodes of the book node:");
while (bookDescendants->MoveNext())
{
Console::WriteLine(bookDescendants->Current->Name);
}
// Select all the child nodes of the book node.
XPathNodeIterator^ bookChildren = navigator->SelectChildren("", "http://www.contoso.com/books");
// Display the LocalName of each child node.
Console::WriteLine("\nChild nodes of the book node:");
while (bookChildren->MoveNext())
{
Console::WriteLine(bookChildren->Current->Name);
}
// Select all the ancestor nodes of the title node.
navigator->MoveToChild("title", "http://www.contoso.com/books");
XPathNodeIterator^ bookAncestors = navigator->SelectAncestors("", "http://www.contoso.com/books", false);
// Display the LocalName of each ancestor node.
Console::WriteLine("\nAncestor nodes of the title node:");
while (bookAncestors->MoveNext())
{
Console::WriteLine(bookAncestors->Current->Name);
}
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");
// Select all the descendant nodes of the book node.
XPathNodeIterator bookDescendants = navigator.SelectDescendants("", "http://www.contoso.com/books", false);
// Display the LocalName of each descendant node.
Console.WriteLine("Descendant nodes of the book node:");
while (bookDescendants.MoveNext())
{
Console.WriteLine(bookDescendants.Current.Name);
}
// Select all the child nodes of the book node.
XPathNodeIterator bookChildren = navigator.SelectChildren("", "http://www.contoso.com/books");
// Display the LocalName of each child node.
Console.WriteLine("\nChild nodes of the book node:");
while (bookChildren.MoveNext())
{
Console.WriteLine(bookChildren.Current.Name);
}
// Select all the ancestor nodes of the title node.
navigator.MoveToChild("title", "http://www.contoso.com/books");
XPathNodeIterator bookAncestors = navigator.SelectAncestors("", "http://www.contoso.com/books", false);
// Display the LocalName of each ancestor node.
Console.WriteLine("\nAncestor nodes of the title node:");
while (bookAncestors.MoveNext())
{
Console.WriteLine(bookAncestors.Current.Name);
}
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")
' Select all the descendant nodes of the book node.
Dim bookDescendants As XPathNodeIterator = navigator.SelectDescendants("", "http://www.contoso.com/books", False)
' Display the LocalName of each descendant node.
Console.WriteLine("Descendant nodes of the book node:")
While bookDescendants.MoveNext()
Console.WriteLine(bookDescendants.Current.Name)
End While
' Select all the child nodes of the book node.
Dim bookChildren As XPathNodeIterator = navigator.SelectChildren("", "http://www.contoso.com/books")
' Display the LocalName of each child node.
Console.WriteLine(vbCrLf & "Child nodes of the book node:")
While bookChildren.MoveNext()
Console.WriteLine(bookChildren.Current.Name)
End While
' Select all the ancestor nodes of the title node.
navigator.MoveToChild("title", "http://www.contoso.com/books")
Dim bookAncestors As XPathNodeIterator = navigator.SelectAncestors("", "http://www.contoso.com/books", False)
' Display the LocalName of each ancestor node.
Console.WriteLine(vbCrLf & "Ancestor nodes of the title node:")
While bookAncestors.MoveNext()
Console.WriteLine(bookAncestors.Current.Name)
End While
The example takes the contosoBooks.xml
file as an input.
<?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>
Remarks
If String.Empty is specified as the name
parameter, all ancestor nodes that belong to the specified namespace URI are selected. If String.Empty is specified as the namespaceURI
parameter, all ancestor nodes with the specified local name that belong to no namespace are selected. If String.Empty is specified as both the local name and namespace URI, all ancestor nodes that belong to no namespace are selected.
The SelectAncestors method has no effect on the state of the XPathNavigator.