ContentMergeIterator 结构


循环访问子内容节点或后续同级节点。Iterates over child content nodes or following sibling nodes. 按文档顺序维护节点。Maintains the nodes in document order.

此 API 支持产品基础结构,不能在代码中直接使用。

public value class ContentMergeIterator
public struct ContentMergeIterator
type ContentMergeIterator = struct
Public Structure ContentMergeIterator


  1. 假设输入节点的列表 I 按文档顺序排列,无重复项。Assume that the list I of input nodes is in document order, with no duplicates. List I 中有 N 个节点。There are N nodes in list I.
  2. 对于列表 I 中的每个节点,将派生包含匹配子级或后同辈节点的节点列表。For each node in list I, derive a list of nodes consisting of matching children or following-sibling nodes. 调用这些列表(1) .。。S (N)。Call these lists S(1)...S(N).
  3. 让 F 成为任何列表中的第一个节点(X),其中 X >= 1,X < N 4。Let F be the first node in any list S(X), where X >= 1 and X < N 4. 仅存在一系列连续的列表(Y) .。。S (Z),其中 Y > X 和 Z <= N,以便列出(X + 1) .。。S (N)可划分为以下三个组: a。There exists exactly one contiguous sequence of lists S(Y)...S(Z), where Y > X and Z <= N, such that the lists S(X+1)...S(N) can be partitioned into these three groups: a. 第一组(X + 1) .。。S (Y-1))--这些列表中的所有节点都在文档顺序 b 中处于 F 之前。1st group (S(X+1)...S(Y-1)) -- All nodes in these lists precede F in document order b. 第二组(S (Y) .。。S (Z))--这些列表中的所有节点都是列表 S (X) c 中的节点的副本。2nd group (S(Y)...S(Z)) -- All nodes in these lists are duplicates of nodes in list S(X) c. 第三组(> S (Z))--此列表中的所有节点都按文档顺序5成功。3rd group (> S(Z)) -- All nodes in these lists succeed F in document order 5. 给定 #4,一旦返回第一个组中的所有节点,就可以返回节点 F。Given #4, node F can be returned once all nodes in the 1st group have been returned. 列出 S (Y) .。。可以丢弃 S (Z)。Lists S(Y)...S(Z) can be discarded. 只需生成第三组中的一个节点,就可以保证已经生成了第一个和第二个组中的所有节点。And only a single node in the 3rd group need be generated in order to guarantee that all nodes in the 1st and 2nd groups have already been generated.



返回当前结果导航器。Returns the current result navigator.



初始化 ContentMergeIteratorInitializes the ContentMergeIterator. 按文档顺序合并多组内容节点并移除重复项。Merges multiple sets of content nodes in document order and removes duplicates.


将迭代器定位到下一个内容或同级节点。Positions the iterator on the next content or sibling node.