9 if (pageElem[idxElem].HasNamespaceDecls)
22 while (!pageElem[idxElem].HasNamespaceDecls)
24 idxElem = pageElem[idxElem].
GetParent(out pageElem);
38 if (pageNode[idxNode].HasAttribute)
49 int sibling = pageNode[idxNode].
GetSibling(out pageNode2);
50 if (sibling != 0 && pageNode2[sibling].NodeType ==
XPathNodeType.Attribute)
62 int idxNode2 = idxNode;
63 if (pageNode2[idxNode2].HasContentChild)
65 GetChild(ref pageNode2, ref idxNode2);
66 while (pageNode2[idxNode2].NodeType ==
XPathNodeType.Attribute)
68 idxNode2 = pageNode2[idxNode2].GetSibling(out pageNode2);
81 if (!pageNode2[num].IsAttrNmsp)
83 num = pageNode2[num].
GetSibling(out pageNode2);
98 num = pageNode2[num].
GetParent(out pageNode2);
101 pageNode = pageNode2;
110 return (pageNode[0].PageInfo.PageNumber << 16) | idxNode;
116 int idxNode2 = idxNode;
117 if (pageNode2[idxNode2].HasElementChild)
119 GetChild(ref pageNode2, ref idxNode2);
122 if (pageNode2[idxNode2].ElementMatch(localName, namespaceName))
124 pageNode = pageNode2;
128 idxNode2 = pageNode2[idxNode2].GetSibling(out pageNode2);
130 while (idxNode2 != 0);
143 num = pageNode2[num].
GetSibling(out pageNode2);
148 if (pageNode2[num].ElementMatch(localName, namespaceName))
150 pageNode = pageNode2;
162 int idxNode2 = idxNode;
163 if (pageNode2[idxNode2].HasContentChild)
166 GetChild(ref pageNode2, ref idxNode2);
169 if (((1 << (
int)pageNode2[idxNode2].NodeType) & contentKindMask) != 0)
175 pageNode = pageNode2;
179 idxNode2 = pageNode2[idxNode2].GetSibling(out pageNode2);
181 while (idxNode2 != 0);
195 num = pageNode2[num].
GetSibling(out pageNode2);
200 if (((1 << (
int)pageNode2[num].NodeType) & contentKindMask) != 0)
202 pageNode = pageNode2;
214 num = pageNode[num].GetParent(out var pageNode2);
217 int num2 = idxNode - 1;
221 array = pageNode[0].PageInfo.PreviousPage;
222 num2 = array.Length - 1;
228 if (num == num2 && pageNode2 == array)
238 num3 = pageNode3[num3].
GetParent(out pageNode3);
240 while (num3 != num || pageNode3 != pageNode2);
254 int idxNode2 = idxNode;
255 if (pageNode2[idxNode2].HasAttribute)
257 GetChild(ref pageNode2, ref idxNode2);
260 if (pageNode2[idxNode2].NameMatch(localName, namespaceName))
262 pageNode = pageNode2;
266 idxNode2 = pageNode2[idxNode2].GetSibling(out pageNode2);
268 while (idxNode2 != 0 && pageNode2[idxNode2].NodeType ==
XPathNodeType.Attribute);
284 if (pageNumber > num || (pageNumber == num && i >= idxEnd))
296 int pageNumber = pageNode[0].PageInfo.PageNumber;
297 if (pageNumber > num || (pageNumber == num && i >= idxEnd))
302 if ((
object)pageNode[i].LocalName == localName && pageNode[i].NamespaceUri == namespaceName)
318 if (pageNode == pageEnd && i <= idxEnd)
320 for (; i != idxEnd; i++)
322 if (pageNode[i].ElementMatch(localName, namespaceName))
332 if (pageNode[i].ElementMatch(localName, namespaceName))
339 if (pageNode !=
null)
350 pageCurrent = pageNode;
358 int num = idxCurrent;
363 if (array == pageEnd && num <= idxEnd)
365 for (; num != idxEnd; num++)
367 if (((1 << (
int)array[num].NodeType) & contentKindMask) != 0)
375 for (; num < array[0].PageInfo.NodeCount; num++)
377 if (((1 << (
int)array[num].NodeType) & contentKindMask) != 0)
382 array = array[0].PageInfo.NextPage;
402 int num = idxCurrent;
406 if (array == pageEnd && num <= idxEnd)
408 for (; num != idxEnd; num++)
410 if (array[num].IsText || (array[num].NodeType ==
XPathNodeType.Element && array[num].HasCollapsedText))
418 for (; num < array[0].PageInfo.NodeCount; num++)
420 if (array[num].IsText || (array[num].NodeType ==
XPathNodeType.Element && array[num].HasCollapsedText))
425 array = array[0].PageInfo.NextPage;
448 if (pageNode2[num].HasSibling)
450 pageNode = pageNode2;
451 idxNode = pageNode2[num].
GetSibling(out pageNode);
454 num = pageNode2[num].
GetParent(out pageNode2);
462 if (++idxNode >= pageNode.Length)
464 pageNode = pageNode[0].PageInfo.NextPage;
static bool GetNextAttribute(ref XPathNode[] pageNode, ref int idxNode)
static bool GetElementSibling(ref XPathNode[] pageNode, ref int idxNode, string localName, string namespaceName)
static bool GetTextFollowing(ref XPathNode[] pageCurrent, ref int idxCurrent, XPathNode[] pageEnd, int idxEnd)
static int GetInScopeNamespaces(XPathNode[] pageElem, int idxElem, out XPathNode[] pageNmsp)
static bool GetPreviousContentSibling(ref XPathNode[] pageNode, ref int idxNode)
static int GetLocalNamespaces(XPathNode[] pageElem, int idxElem, out XPathNode[] pageNmsp)
static bool GetContentChild(ref XPathNode[] pageNode, ref int idxNode, XPathNodeType typ)
static bool GetFirstAttribute(ref XPathNode[] pageNode, ref int idxNode)
static bool GetContentSibling(ref XPathNode[] pageNode, ref int idxNode, XPathNodeType typ)
static bool GetElementChild(ref XPathNode[] pageNode, ref int idxNode, string localName, string namespaceName)
static bool GetContentFollowing(ref XPathNode[] pageCurrent, ref int idxCurrent, XPathNode[] pageEnd, int idxEnd, XPathNodeType typ)
static bool GetContentChild(ref XPathNode[] pageNode, ref int idxNode)
static bool GetNonDescendant(ref XPathNode[] pageNode, ref int idxNode)
static bool GetElementFollowing(ref XPathNode[] pageCurrent, ref int idxCurrent, XPathNode[] pageEnd, int idxEnd, string localName, string namespaceName)
static bool GetContentSibling(ref XPathNode[] pageNode, ref int idxNode)
static int GetLocation(XPathNode[] pageNode, int idxNode)
static bool GetParent(ref XPathNode[] pageNode, ref int idxNode)
static bool GetAttribute(ref XPathNode[] pageNode, ref int idxNode, string localName, string namespaceName)
static void GetChild(ref XPathNode[] pageNode, ref int idxNode)
int LookupNamespaces(XPathNode[] pageElem, int idxElem, out XPathNode[] pageNmsp)
int GetXmlNamespaceNode(out XPathNode[] pageXmlNmsp)
static int GetContentKindMask(XPathNodeType type)
XPathNodePageInfo PageInfo
int GetParent(out XPathNode[] pageNode)
int GetSibling(out XPathNode[] pageNode)
int GetSimilarElement(out XPathNode[] pageNode)