本文整理汇总了C#中System.Xml.Xsl.XsltOld.Processor.StartQuery方法的典型用法代码示例。如果您正苦于以下问题:C# Processor.StartQuery方法的具体用法?C# Processor.StartQuery怎么用?C# Processor.StartQuery使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Xml.Xsl.XsltOld.Processor
的用法示例。
在下文中一共展示了Processor.StartQuery方法的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;
}
}