本文整理汇总了C#中ITag.DoSemanticAction方法的典型用法代码示例。如果您正苦于以下问题:C# ITag.DoSemanticAction方法的具体用法?C# ITag.DoSemanticAction怎么用?C# ITag.DoSemanticAction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ITag
的用法示例。
在下文中一共展示了ITag.DoSemanticAction方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Scan
/// <summary> Scan for style definitions.
/// Accumulates text from the page, until </[a-zA-Z] is encountered.
/// </summary>
/// <param name="tag">The tag this scanner is responsible for.
/// </param>
/// <param name="lexer">The source of CDATA.
/// </param>
/// <param name="stack">The parse stack, <em>not used</em>.
/// </param>
public override ITag Scan(ITag tag, Lexer lexer, NodeList stack)
{
INode content;
int position;
INode node;
TagAttribute attribute;
System.Collections.ArrayList vector;
content = lexer.ParseCDATA();
position = lexer.Position;
node = lexer.NextNode(false);
if (null != node)
if (!(node is ITag) || !(((ITag) node).IsEndTag() && ((ITag) node).TagName.Equals(tag.Ids[0])))
{
lexer.Position = position;
node = null;
}
// build new end tag if required
if (null == node)
{
attribute = new TagAttribute("/style", null);
vector = System.Collections.ArrayList.Synchronized(new System.Collections.ArrayList(10));
vector.Add(attribute);
node = lexer.NodeFactory.CreateTagNode(lexer.Page, position, position, vector);
}
tag.SetEndTag((ITag) node);
if (null != content)
{
tag.Children = new NodeList(content);
content.Parent = tag;
}
node.Parent = tag;
tag.DoSemanticAction();
return (tag);
}
示例2: Scan
/// <summary> Scan for script.
/// Accumulates text from the page, until </[a-zA-Z] is encountered.
/// </summary>
/// <param name="tag">The tag this scanner is responsible for.
/// </param>
/// <param name="lexer">The source of CDATA.
/// </param>
/// <param name="stack">The parse stack, <em>not used</em>.
/// </param>
public override ITag Scan(ITag tag, Lexer lexer, NodeList stack)
{
System.String language;
System.String code;
INode content;
int position;
INode node;
TagAttribute attribute;
System.Collections.ArrayList vector;
if (tag is ScriptTag)
{
language = ((ScriptTag) tag).Language;
if ((null != language) && (language.ToUpper().Equals("JScript.Encode".ToUpper()) || language.ToUpper().Equals("VBScript.Encode".ToUpper())))
{
code = ScriptDecoder.Decode(lexer.Page, lexer.Cursor);
((ScriptTag) tag).ScriptCode = code;
}
}
content = lexer.ParseCDATA(!STRICT);
position = lexer.Position;
node = lexer.NextNode(false);
if (null != node)
if (!(node is ITag) || !(((ITag) node).IsEndTag() && ((ITag) node).TagName.Equals(tag.Ids[0])))
{
lexer.Position = position;
node = null;
}
// build new end tag if required
if (null == node)
{
attribute = new TagAttribute("/script", null);
vector = System.Collections.ArrayList.Synchronized(new System.Collections.ArrayList(10));
vector.Add(attribute);
node = lexer.NodeFactory.CreateTagNode(lexer.Page, position, position, vector);
}
tag.SetEndTag((ITag) node);
if (null != content)
{
tag.Children = new NodeList(content);
content.Parent = tag;
}
node.Parent = tag;
tag.DoSemanticAction();
return (tag);
}
示例3: Scan
/// <summary> Scan the tag.
/// For this implementation, the only operation is to perform the tag's
/// semantic action.
/// </summary>
/// <param name="tag">The tag to scan.
/// </param>
/// <param name="lexer">Provides html page access.
/// </param>
/// <param name="stack">The parse stack. May contain pending tags that enclose
/// this tag.
/// </param>
/// <returns> The resultant tag (may be unchanged).
/// </returns>
public virtual ITag Scan(ITag tag, Winista.Text.HtmlParser.Lex.Lexer lexer, NodeList stack)
{
tag.DoSemanticAction();
return (tag);
}
示例4: FinishTag
/// <summary> Finish off a tag.
/// Perhap add a virtual end tag.
/// Set the end tag parent as this tag.
/// Perform the semantic acton.
/// </summary>
/// <param name="tag">The tag to finish off.
/// </param>
/// <param name="lexer">A lexer positioned at the end of the tag.
/// </param>
protected internal virtual void FinishTag(ITag tag, Lexer lexer)
{
if (null == tag.GetEndTag())
{
tag.SetEndTag(CreateVirtualEndTag(tag, lexer, lexer.Page, lexer.Cursor.Position));
}
tag.GetEndTag().Parent = tag;
tag.DoSemanticAction();
}