本文整理匯總了C#中System.Xml.Xsl.XsltOld.ActionFrame.NewNextNode方法的典型用法代碼示例。如果您正苦於以下問題:C# ActionFrame.NewNextNode方法的具體用法?C# ActionFrame.NewNextNode怎麽用?C# ActionFrame.NewNextNode使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類System.Xml.Xsl.XsltOld.ActionFrame
的用法示例。
在下文中一共展示了ActionFrame.NewNextNode方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。
示例1: Execute
internal override void Execute(Processor processor, ActionFrame frame)
{
Debug.Assert(processor != null && frame != null);
switch (frame.State)
{
case Initialized:
if (_sortContainer != null)
{
processor.InitSortArray();
processor.PushActionFrame(_sortContainer, frame.NodeSet);
frame.State = ProcessedSort;
break;
}
goto case ProcessedSort;
case ProcessedSort:
frame.InitNewNodeSet(processor.StartQuery(frame.NodeSet, _selectKey));
if (_sortContainer != null)
{
Debug.Assert(processor.SortArray.Count != 0);
frame.SortNewNodeSet(processor, processor.SortArray);
}
frame.State = ProcessNextNode;
goto case ProcessNextNode;
case ProcessNextNode:
Debug.Assert(frame.State == ProcessNextNode);
Debug.Assert(frame.NewNodeSet != null);
if (frame.NewNextNode(processor))
{
frame.State = PositionAdvanced;
goto case PositionAdvanced;
}
else
{
frame.Finished();
break;
}
case PositionAdvanced:
processor.PushActionFrame(frame, frame.NewNodeSet);
frame.State = ContentsProcessed;
break;
case ContentsProcessed:
frame.State = ProcessNextNode;
goto case ProcessNextNode;
}
}
示例2: Execute
internal override void Execute(Processor processor, ActionFrame frame)
{
Debug.Assert(processor != null && frame != null);
switch (frame.State)
{
case Initialized:
processor.ResetParams();
processor.InitSortArray();
if (this.containedActions != null && this.containedActions.Count > 0)
{
processor.PushActionFrame(frame);
frame.State = ProcessedChildren;
break;
}
goto case ProcessedChildren;
case ProcessedChildren:
if (_selectKey == Compiler.InvalidQueryKey)
{
if (!frame.Node.HasChildren)
{
frame.Finished();
break;
}
frame.InitNewNodeSet(frame.Node.SelectChildren(XPathNodeType.All));
}
else
{
frame.InitNewNodeSet(processor.StartQuery(frame.NodeSet, _selectKey));
}
if (processor.SortArray.Count != 0)
{
frame.SortNewNodeSet(processor, processor.SortArray);
}
frame.State = ProcessNextNode;
goto case ProcessNextNode;
case ProcessNextNode:
Debug.Assert(frame.State == ProcessNextNode);
Debug.Assert(frame.NewNodeSet != null);
if (frame.NewNextNode(processor))
{
frame.State = PositionAdvanced;
goto case PositionAdvanced;
}
else
{
frame.Finished();
break;
}
case PositionAdvanced:
Debug.Assert(frame.State == PositionAdvanced);
processor.PushTemplateLookup(frame.NewNodeSet, _mode, /*importsOf:*/null);
frame.State = TemplateProcessed;
break;
case TemplateProcessed:
frame.State = ProcessNextNode;
goto case ProcessNextNode;
default:
Debug.Fail("Invalid ApplyTemplatesAction execution state");
break;
}
}