Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Advance()

override XPathNavigator MS.Internal.Xml.XPath.DescendantQuery.Advance ( )
inline

Definition at line 26 of file DescendantQuery.cs.

27 {
28 while (true)
29 {
30 if (_nodeIterator == null)
31 {
32 position = 0;
33 XPathNavigator xPathNavigator = qyInput.Advance();
34 if (xPathNavigator == null)
35 {
36 return null;
37 }
38 if (base.NameTest)
39 {
40 if (base.TypeTest == XPathNodeType.ProcessingInstruction)
41 {
42 _nodeIterator = new IteratorFilter(xPathNavigator.SelectDescendants(base.TypeTest, matchSelf), base.Name);
43 }
44 else
45 {
46 _nodeIterator = xPathNavigator.SelectDescendants(base.Name, base.Namespace, matchSelf);
47 }
48 }
49 else
50 {
51 _nodeIterator = xPathNavigator.SelectDescendants(base.TypeTest, matchSelf);
52 }
53 }
55 {
56 break;
57 }
58 _nodeIterator = null;
59 }
60 position++;
62 return currentNode;
63 }
XPathNavigator Advance()
virtual XPathNodeIterator SelectDescendants(XPathNodeType type, bool matchSelf)

References MS.Internal.Xml.XPath.DescendantQuery._nodeIterator, MS.Internal.Xml.XPath.Query.Advance(), System.Xml.XPath.XPathNodeIterator.Current, MS.Internal.Xml.XPath.BaseAxisQuery.currentNode, MS.Internal.Xml.XPath.DescendantBaseQuery.matchSelf, System.Xml.XPath.XPathNodeIterator.MoveNext(), MS.Internal.Xml.XPath.BaseAxisQuery.position, MS.Internal.Xml.XPath.BaseAxisQuery.qyInput, and System.Xml.XPath.XPathNavigator.SelectDescendants().