本文整理汇总了C#中System.Xml.Xsl.XsltOld.Processor.Evaluate方法的典型用法代码示例。如果您正苦于以下问题:C# Processor.Evaluate方法的具体用法?C# Processor.Evaluate怎么用?C# Processor.Evaluate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Xml.Xsl.XsltOld.Processor
的用法示例。
在下文中一共展示了Processor.Evaluate方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
internal override void Execute(Processor processor, ActionFrame frame) {
Debug.Assert(processor != null && frame != null);
ArrayList list = processor.NumberList;
switch (frame.State) {
case Initialized:
Debug.Assert(frame != null);
Debug.Assert(frame.NodeSet != null);
list.Clear();
if (this.valueKey != Compiler.InvalidQueryKey) {
list.Add(SimplifyValue(processor.Evaluate(frame, this.valueKey)));
}
else if (this.level == "any") {
int number = numberAny(processor, frame);
if (number != 0) {
list.Add(number);
}
}
else {
bool multiple = (this.level == "multiple");
XPathNavigator contextNode = frame.Node; // context of xsl:number element. We using this node in MatchCountKey()
XPathNavigator countNode = frame.Node.Clone(); // node we count for
if (countNode.NodeType == XPathNodeType.Attribute || countNode.NodeType == XPathNodeType.Namespace) {
countNode.MoveToParent();
}
while (moveToCount(countNode, processor, contextNode)) {
list.Insert(0, numberCount(countNode, processor, contextNode));
if(! multiple || ! countNode.MoveToParent()) {
break;
}
}
if(! checkFrom(processor, countNode)) {
list.Clear();
}
}
/*CalculatingFormat:*/
frame.StoredOutput = Format(list,
this.formatAvt == null ? this.formatTokens : ParseFormat(this.formatAvt.Evaluate(processor, frame)),
this.langAvt == null ? this.lang : this.langAvt .Evaluate(processor, frame),
this.letterAvt == null ? this.letter : ParseLetter(this.letterAvt.Evaluate(processor, frame)),
this.groupingSepAvt == null ? this.groupingSep : this.groupingSepAvt .Evaluate(processor, frame),
this.groupingSizeAvt == null ? this.groupingSize : this.groupingSizeAvt.Evaluate(processor, frame)
);
goto case OutputNumber;
case OutputNumber :
Debug.Assert(frame.StoredOutput != null);
if (! processor.TextEvent(frame.StoredOutput)) {
frame.State = OutputNumber;
break;
}
frame.Finished();
break;
default:
Debug.Fail("Invalid Number Action execution state");
break;
}
}