XPathNavigator.MoveToNext Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Áthelyezi az XPathNavigator aktuális csomópont következő testvércsomópontjára.
Túlterhelések
| Name | Description |
|---|---|
| MoveToNext() |
Ha felül van bírálva egy származtatott osztályban, az XPathNavigator aktuális csomópont következő testvércsomópontja lesz. |
| MoveToNext(XPathNodeType) |
Áthelyezi az XPathNavigator aktuális csomópont következő testvércsomópontjára, amely megfelel a XPathNodeType megadottnak. |
| MoveToNext(String, String) |
Áthelyezi a XPathNavigator következő testvércsomópontra a megadott helyi névvel és névtér URI-val. |
MoveToNext()
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
Ha felül van bírálva egy származtatott osztályban, az XPathNavigator aktuális csomópont következő testvércsomópontja lesz.
public:
abstract bool MoveToNext();
public abstract bool MoveToNext();
abstract member MoveToNext : unit -> bool
Public MustOverride Function MoveToNext () As Boolean
Válaszok
true ha a XPathNavigator rendszer sikeresen áttér a következő testvércsomópontra; ellenkező esetben, ha nincs több testvér, false vagy ha a XPathNavigator jelenleg egy attribútumcsomóponton van elhelyezve. Ha false, a pozíció XPathNavigator nem változik.
Példák
Az alábbi példa rekurzív módon hatja át a csomópontfát, és megjeleníti az elem- és szövegcsomópontokra vonatkozó információkat.
static void XPathNavigatorMethods_MoveToNext()
{
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathNodeIterator nodeset = navigator.Select("descendant::book[author/last-name='Melville']");
while (nodeset.MoveNext())
{
// Clone iterator here when working with it.
RecursiveWalk(nodeset.Current.Clone());
}
}
public static void RecursiveWalk(XPathNavigator navigator)
{
switch (navigator.NodeType)
{
case XPathNodeType.Element:
if (string.IsNullOrEmpty(navigator.Prefix))
Console.WriteLine("<{0}>", navigator.LocalName);
else
Console.Write("<{0}:{1}>", navigator.Prefix, navigator.LocalName);
Console.WriteLine("\t" + navigator.NamespaceURI);
break;
case XPathNodeType.Text:
Console.WriteLine("\t" + navigator.Value);
break;
}
if (navigator.MoveToFirstChild())
{
do
{
RecursiveWalk(navigator);
} while (navigator.MoveToNext());
navigator.MoveToParent();
if (navigator.NodeType == XPathNodeType.Element)
Console.WriteLine("</{0}>", navigator.Name);
}
else
{
if (navigator.NodeType == XPathNodeType.Element)
{
Console.WriteLine("</{0}>", navigator.Name);
}
}
}
Shared Sub XPathNavigatorMethods_MoveToNext()
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim nodeset As XPathNodeIterator = navigator.Select("descendant::book[author/last-name='Melville']")
While nodeset.MoveNext()
' Clone iterator here when working with it.
RecursiveWalk(nodeset.Current.Clone())
End While
End Sub
Shared Sub RecursiveWalk(ByVal navigator As XPathNavigator)
Select Case navigator.NodeType
Case XPathNodeType.Element
If navigator.Prefix = String.Empty Then
Console.WriteLine("<{0}>", navigator.LocalName)
Else
Console.Write("<{0}:{1}>", navigator.Prefix, navigator.LocalName)
Console.WriteLine(vbTab + navigator.NamespaceURI)
End If
Case XPathNodeType.Text
Console.WriteLine(vbTab + navigator.Value)
End Select
If navigator.MoveToFirstChild() Then
Do
RecursiveWalk(navigator)
Loop While (navigator.MoveToNext())
navigator.MoveToParent()
If (navigator.NodeType = XPathNodeType.Element) Then
Console.WriteLine("</{0}>", navigator.Name)
End If
Else
If navigator.NodeType = XPathNodeType.Element Then
Console.WriteLine("</{0}>", navigator.Name)
End If
End If
End Sub
A példa bemenetként használja a books.xml fájlt.
<?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>
Lásd még
A következőre érvényes:
MoveToNext(XPathNodeType)
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
Áthelyezi az XPathNavigator aktuális csomópont következő testvércsomópontjára, amely megfelel a XPathNodeType megadottnak.
public:
virtual bool MoveToNext(System::Xml::XPath::XPathNodeType type);
public virtual bool MoveToNext(System.Xml.XPath.XPathNodeType type);
abstract member MoveToNext : System.Xml.XPath.XPathNodeType -> bool
override this.MoveToNext : System.Xml.XPath.XPathNodeType -> bool
Public Overridable Function MoveToNext (type As XPathNodeType) As Boolean
Paraméterek
- type
- XPathNodeType
A XPathNodeType testvércsomópont, amelybe át szeretne lépni.
Válaszok
true ha a XPathNavigator rendszer sikeresen áttér a következő testvércsomópontra; ellenkező esetben, ha nincs több testvér, false vagy ha a XPathNavigator jelenleg egy attribútumcsomóponton van elhelyezve. Ha false, a pozíció XPathNavigator nem változik.
Megjegyzések
A metódus visszatérési MoveToNext értéke az XPathNodeType aktuális csomóponttól és a XPathNodeType következő testvércsomóponttól függ.
Az alábbi táblázat a különböző XPathNodeType csomópontokat és a testvércsomópontokat mutatja be, a migrálásukhoz.
| Az aktuális csomópont XPathNodeType-típusa | Testvércsomópont XPathNodeType-típusa |
|---|---|
| Element | Element, ProcessingInstruction,, Comment vagy Text. |
| Text | Element, ProcessingInstruction,, Comment vagy Text. |
| ProcessingInstruction | Element, ProcessingInstruction,, Comment vagy Text. |
| Comment | Element, ProcessingInstruction,, Comment vagy Text. |
| Minden más XPathNodeType érték | Nincs. |
A következőre érvényes:
MoveToNext(String, String)
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
- Forrás:
- XPathNavigator.cs
Áthelyezi a XPathNavigator következő testvércsomópontra a megadott helyi névvel és névtér URI-val.
public:
virtual bool MoveToNext(System::String ^ localName, System::String ^ namespaceURI);
public virtual bool MoveToNext(string localName, string namespaceURI);
abstract member MoveToNext : string * string -> bool
override this.MoveToNext : string * string -> bool
Public Overridable Function MoveToNext (localName As String, namespaceURI As String) As Boolean
Paraméterek
- localName
- String
A következő testvércsomópont helyi neve, amelybe át szeretne lépni.
- namespaceURI
- String
A következő testvércsomópont névterének URI-ja, amelybe át szeretne lépni.
Válaszok
true ha a XPathNavigator rendszer sikeresen áttér a következő testvércsomópontra; false ha nincs több testvér, vagy ha jelenleg XPathNavigator egy attribútumcsomóponton van elhelyezve. Ha false, a pozíció XPathNavigator nem változik.