本文整理汇总了C#中System.Xml.Xsl.XsltOld.Processor.TextEvent方法的典型用法代码示例。如果您正苦于以下问题:C# Processor.TextEvent方法的具体用法?C# Processor.TextEvent怎么用?C# Processor.TextEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Xml.Xsl.XsltOld.Processor
的用法示例。
在下文中一共展示了Processor.TextEvent方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Execute
internal override void Execute(Processor processor, ActionFrame frame)
{
Debug.Assert(processor != null && frame != null);
switch (frame.State)
{
case Initialized:
Debug.Assert(frame != null);
Debug.Assert(frame.NodeSet != null);
string value = processor.ValueOf(frame, _selectKey);
if (processor.TextEvent(value, _disableOutputEscaping))
{
frame.Finished();
}
else
{
frame.StoredOutput = value;
frame.State = ResultStored;
}
break;
case ResultStored:
Debug.Assert(frame.StoredOutput != null);
processor.TextEvent(frame.StoredOutput);
frame.Finished();
break;
default:
Debug.Fail("Invalid ValueOfAction execution state");
break;
}
}
示例2: Execute
internal override void Execute(Processor processor, ActionFrame frame)
{
Debug.Assert(processor != null && frame != null);
switch (frame.State)
{
case Initialized:
Debug.Assert(frame.NodeSet != null);
Query query = processor.GetValueQuery(_selectKey);
object result = query.Evaluate(frame.NodeSet);
if (result is XPathNodeIterator)
{
// we cash this query because otherwise current() works incorrectly. Bug#382166.
// To be perfect we should use frame.NewNodeSet here
processor.PushActionFrame(CopyNodeSetAction.GetAction(), new XPathArrayIterator(query));
frame.State = NodeSetCopied;
break;
}
XPathNavigator nav = result as XPathNavigator;
if (nav != null)
{
processor.PushActionFrame(CopyNodeSetAction.GetAction(), new XPathSingletonIterator(nav));
frame.State = NodeSetCopied;
break;
}
string value = XmlConvert.ToXPathString(result);
if (processor.TextEvent(value))
{
frame.Finished();
}
else
{
frame.StoredOutput = value;
frame.State = ResultStored;
}
break;
case ResultStored:
Debug.Assert(frame.StoredOutput != null);
processor.TextEvent(frame.StoredOutput);
frame.Finished();
break;
case NodeSetCopied:
Debug.Assert(frame.State == NodeSetCopied);
frame.Finished();
break;
}
}
示例3: Execute
internal override void Execute(Processor processor, ActionFrame frame) {
Debug.Assert(processor != null && frame != null);
switch (frame.State) {
case Initialized:
if (processor.TextEvent(this.text, disableOutputEscaping)) {
frame.Finished();
}
break;
default:
Debug.Fail("Invalid execution state in TextAction");
break;
}
}
示例4: SendTextEvent
private static bool SendTextEvent(Processor processor, XPathNavigator node) {
Debug.Assert(node.NodeType == XPathNodeType.Attribute);
return processor.TextEvent(node.Value);
}
示例5: 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;
}
}
示例6: Output
public override bool Output(Processor processor, ActionFrame frame) {
Debug.Assert(key != Compiler.InvalidQueryKey);
return processor.TextEvent(processor.EvaluateString(frame, this.key));
}
示例7: Output
public override bool Output(Processor processor, ActionFrame frame) {
return processor.TextEvent(this.text);
}