本文整理汇总了C#中HtmlParseMode类的典型用法代码示例。如果您正苦于以下问题:C# HtmlParseMode类的具体用法?C# HtmlParseMode怎么用?C# HtmlParseMode使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
HtmlParseMode类属于命名空间,在下文中一共展示了HtmlParseMode类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: HtmlTokenizer
/// <summary>
/// See 8.2.4 Tokenization
/// </summary>
/// <param name="source">The source code manager.</param>
/// <param name="events">The event aggregator to use.</param>
public HtmlTokenizer(TextSource source, IEventAggregator events)
: base(source, events)
{
_state = HtmlParseMode.PCData;
_acceptsCharacterData = false;
_lastStartTag = String.Empty;
}
开发者ID:JBTech,项目名称:AngleSharp,代码行数:12,代码来源:HtmlTokenizer.cs
示例2: HtmlTokenizer
/// <summary>
/// See 8.2.4 Tokenization
/// </summary>
/// <param name="source">The source code manager.</param>
public HtmlTokenizer(ITextSource source)
: base(source)
{
_state = HtmlParseMode.PCData;
_acceptsCharacterData = false;
_buffer = new StringBuilder();
}
开发者ID:jogibear9988,项目名称:AngleSharp,代码行数:11,代码来源:HtmlTokenizer.cs
示例3: HtmlTokenizer
/// <summary>
/// See 8.2.4 Tokenization
/// </summary>
/// <param name="source">The source code manager.</param>
public HtmlTokenizer(SourceManager source)
: base(source)
{
_model = HtmlParseMode.PCData;
_acceptsCharacterData = false;
_buffer = new StringBuilder();
}
开发者ID:rrsc,项目名称:AngleSharp,代码行数:11,代码来源:HtmlTokenizer.cs
示例4: HtmlTokenizer
/// <summary>
/// See 8.2.4 Tokenization
/// </summary>
/// <param name="source">The source code manager.</param>
public HtmlTokenizer(SourceManager source)
{
src = source;
model = HtmlParseMode.PCData;
buffered = false;
allowCdata = true;
reference = new StringBuilder();
stringBuffer = new StringBuilder();
tokenBuffer = new Queue<HtmlToken>();
}
开发者ID:ranjancse26,项目名称:AngleSharp,代码行数:14,代码来源:HtmlTokenizer.cs
示例5: DoctypeSystemIdentifierBefore
/// <summary>
/// See 8.2.4.63 Before DOCTYPE system identifier state
/// </summary>
/// <param name="doctype">The current doctype token.</param>
HtmlToken DoctypeSystemIdentifierBefore(HtmlDoctypeToken doctype)
{
var c = SkipSpaces();
if (c == Symbols.DoubleQuote)
{
doctype.SystemIdentifier = String.Empty;
return DoctypeSystemIdentifierDoubleQuoted(doctype);
}
else if (c == Symbols.SingleQuote)
{
doctype.SystemIdentifier = String.Empty;
return DoctypeSystemIdentifierSingleQuoted(doctype);
}
else if (c == Symbols.GreaterThan)
{
_state = HtmlParseMode.PCData;
RaiseErrorOccurred(HtmlParseError.TagClosedWrong);
doctype.IsQuirksForced = true;
doctype.SystemIdentifier = _stringBuffer.ToString();
_stringBuffer.Clear();
}
else if (c == Symbols.EndOfFile)
{
RaiseErrorOccurred(HtmlParseError.EOF);
doctype.IsQuirksForced = true;
doctype.SystemIdentifier = _stringBuffer.ToString();
_stringBuffer.Clear();
Back();
}
else
{
RaiseErrorOccurred(HtmlParseError.DoctypeInvalidCharacter);
doctype.IsQuirksForced = true;
return BogusDoctype(doctype);
}
return doctype;
}
开发者ID:JBTech,项目名称:AngleSharp,代码行数:43,代码来源:HtmlTokenizer.cs
示例6: DoctypePublicIdentifierAfter
/// <summary>
/// See 8.2.4.60 After DOCTYPE public identifier state
/// </summary>
/// <param name="doctype">The current doctype token.</param>
HtmlToken DoctypePublicIdentifierAfter(HtmlDoctypeToken doctype)
{
var c = GetNext();
if (c.IsSpaceCharacter())
{
return DoctypeBetween(doctype);
}
else if (c == Symbols.GreaterThan)
{
_state = HtmlParseMode.PCData;
}
else if (c == Symbols.DoubleQuote)
{
RaiseErrorOccurred(HtmlParseError.DoubleQuotationMarkUnexpected);
doctype.SystemIdentifier = String.Empty;
return DoctypeSystemIdentifierDoubleQuoted(doctype);
}
else if (c == Symbols.SingleQuote)
{
RaiseErrorOccurred(HtmlParseError.SingleQuotationMarkUnexpected);
doctype.SystemIdentifier = String.Empty;
return DoctypeSystemIdentifierSingleQuoted(doctype);
}
else if (c == Symbols.EndOfFile)
{
RaiseErrorOccurred(HtmlParseError.EOF);
doctype.IsQuirksForced = true;
Back();
}
else
{
RaiseErrorOccurred(HtmlParseError.DoctypeInvalidCharacter);
doctype.IsQuirksForced = true;
return BogusDoctype(doctype);
}
return doctype;
}
开发者ID:JBTech,项目名称:AngleSharp,代码行数:43,代码来源:HtmlTokenizer.cs
示例7: CommentEnd
/// <summary>
/// See 8.2.4.50 Comment end state
/// </summary>
/// <param name="c">The next input character.</param>
HtmlToken CommentEnd(Char c)
{
while (true)
{
switch (c)
{
case Symbols.GreaterThan:
_state = HtmlParseMode.PCData;
return NewComment();
case Symbols.Null:
RaiseErrorOccurred(HtmlParseError.Null);
_stringBuffer.Append(Symbols.Minus).Append(Symbols.Replacement);
return null;
case Symbols.ExclamationMark:
RaiseErrorOccurred(HtmlParseError.CommentEndedWithEM);
return CommentBangEnd(GetNext());
case Symbols.Minus:
RaiseErrorOccurred(HtmlParseError.CommentEndedWithDash);
_stringBuffer.Append(Symbols.Minus);
break;
case Symbols.EndOfFile:
RaiseErrorOccurred(HtmlParseError.EOF);
Back();
return NewComment();
default:
RaiseErrorOccurred(HtmlParseError.CommentEndedUnexpected);
_stringBuffer.Append(Symbols.Minus).Append(Symbols.Minus).Append(c);
return null;
}
c = GetNext();
}
}
开发者ID:JBTech,项目名称:AngleSharp,代码行数:37,代码来源:HtmlTokenizer.cs
示例8: EmitTag
/// <summary>
/// Emits the current token as a tag token.
/// </summary>
HtmlTagToken EmitTag(HtmlTagToken tag)
{
_model = HtmlParseMode.PCData;
if (tag.Type == HtmlTokenType.StartTag)
{
for (var i = tag.Attributes.Count - 1; i > 0; i--)
{
for (var j = i - 1; j >= 0; j--)
{
if (tag.Attributes[j].Key == tag.Attributes[i].Key)
{
tag.Attributes.RemoveAt(i);
RaiseErrorOccurred(ErrorCode.AttributeDuplicateOmitted);
break;
}
}
}
_lastStartTag = tag.Name;
}
else
{
if (tag.IsSelfClosing)
RaiseErrorOccurred(ErrorCode.EndTagCannotBeSelfClosed);
if (tag.Attributes.Count != 0)
RaiseErrorOccurred(ErrorCode.EndTagCannotHaveAttributes);
}
return tag;
}
开发者ID:rrsc,项目名称:AngleSharp,代码行数:35,代码来源:HtmlTokenizer.cs
示例9: EmitTag
HtmlToken EmitTag(HtmlTagToken tag)
{
var attributes = tag.Attributes;
_state = HtmlParseMode.PCData;
switch (tag.Type)
{
case HtmlTokenType.StartTag:
for (var i = attributes.Count - 1; i > 0; i--)
{
for (var j = i - 1; j >= 0; j--)
{
if (attributes[j].Key == attributes[i].Key)
{
attributes.RemoveAt(i);
RaiseErrorOccurred(HtmlParseError.AttributeDuplicateOmitted, tag.Position);
break;
}
}
}
_lastStartTag = tag.Name;
break;
case HtmlTokenType.EndTag:
if (tag.IsSelfClosing)
RaiseErrorOccurred(HtmlParseError.EndTagCannotBeSelfClosed, tag.Position);
if (attributes.Count != 0)
RaiseErrorOccurred(HtmlParseError.EndTagCannotHaveAttributes, tag.Position);
break;
}
return tag;
}
开发者ID:JBTech,项目名称:AngleSharp,代码行数:35,代码来源:HtmlTokenizer.cs
示例10: DoctypeSystemIdentifierAfter
/// <summary>
/// See 8.2.4.66 After DOCTYPE system identifier state
/// </summary>
/// <param name="doctype">The current doctype token.</param>
HtmlToken DoctypeSystemIdentifierAfter(HtmlDoctypeToken doctype)
{
var c = SkipSpaces();
switch (c)
{
case Symbols.GreaterThan:
_state = HtmlParseMode.PCData;
break;
case Symbols.EndOfFile:
RaiseErrorOccurred(HtmlParseError.EOF);
doctype.IsQuirksForced = true;
Back();
break;
default:
RaiseErrorOccurred(HtmlParseError.DoctypeInvalidCharacter);
return BogusDoctype(doctype);
}
return doctype;
}
开发者ID:JBTech,项目名称:AngleSharp,代码行数:25,代码来源:HtmlTokenizer.cs
示例11: CommentStart
/// <summary>
/// See 8.2.4.46 Comment start state
/// </summary>
/// <param name="c">The next input character.</param>
HtmlToken CommentStart(Char c)
{
_stringBuffer.Clear();
if (c == Specification.MINUS)
return CommentDashStart(_src.Next);
else if (c == Specification.NULL)
{
RaiseErrorOccurred(ErrorCode.NULL);
_stringBuffer.Append(Specification.REPLACEMENT);
return Comment(_src.Next);
}
else if (c == Specification.GT)
{
_model = HtmlParseMode.PCData;
RaiseErrorOccurred(ErrorCode.TagClosedWrong);
return HtmlToken.Comment(_stringBuffer.ToString());
}
else if (c == Specification.EOF)
{
RaiseErrorOccurred(ErrorCode.EOF);
_src.Back();
return HtmlToken.Comment(_stringBuffer.ToString());
}
else
{
_stringBuffer.Append(c);
return Comment(_src.Next);
}
}
开发者ID:rrsc,项目名称:AngleSharp,代码行数:34,代码来源:HtmlTokenizer.cs
示例12: CommentEnd
/// <summary>
/// See 8.2.4.50 Comment end state
/// </summary>
/// <param name="c">The next input character.</param>
HtmlToken CommentEnd(Char c)
{
if (c == Specification.GT)
{
_model = HtmlParseMode.PCData;
return HtmlToken.Comment(_stringBuffer.ToString());
}
else if (c == Specification.NULL)
{
RaiseErrorOccurred(ErrorCode.NULL);
_stringBuffer.Append(Specification.MINUS);
_stringBuffer.Append(Specification.REPLACEMENT);
return Comment(_src.Next);
}
else if (c == Specification.EM)
{
RaiseErrorOccurred(ErrorCode.CommentEndedWithEM);
return CommentBangEnd(_src.Next);
}
else if (c == Specification.MINUS)
{
RaiseErrorOccurred(ErrorCode.CommentEndedWithDash);
_stringBuffer.Append(Specification.MINUS);
return CommentEnd(_src.Next);
}
else if (c == Specification.EOF)
{
RaiseErrorOccurred(ErrorCode.EOF);
_src.Back();
return HtmlToken.Comment(_stringBuffer.ToString());
}
RaiseErrorOccurred(ErrorCode.CommentEndedUnexpected);
_stringBuffer.Append(Specification.MINUS);
_stringBuffer.Append(Specification.MINUS);
_stringBuffer.Append(c);
return Comment(_src.Next);
}
开发者ID:rrsc,项目名称:AngleSharp,代码行数:42,代码来源:HtmlTokenizer.cs
示例13: BogusDoctype
/// <summary>
/// See 8.2.4.67 Bogus DOCTYPE state
/// </summary>
/// <param name="c">The next input character.</param>
/// <param name="doctype">The current doctype token.</param>
/// <returns>The emitted token.</returns>
HtmlToken BogusDoctype(Char c, HtmlDoctypeToken doctype)
{
while (true)
{
if (c == Specification.EOF)
{
_src.Back();
return doctype;
}
else if (c == Specification.GT)
{
_model = HtmlParseMode.PCData;
return doctype;
}
c = _src.Next;
}
}
开发者ID:rrsc,项目名称:AngleSharp,代码行数:24,代码来源:HtmlTokenizer.cs
示例14: BogusComment
/// <summary>
/// See 8.2.4.44 Bogus comment state
/// </summary>
HtmlToken BogusComment(Char c)
{
_stringBuffer.Clear();
while(true)
{
if (c == Specification.GT)
break;
else if (c == Specification.EOF)
{
_src.Back();
break;
}
else if (c == Specification.NULL)
_stringBuffer.Append(Specification.REPLACEMENT);
else
_stringBuffer.Append(c);
c = _src.Next;
}
_model = HtmlParseMode.PCData;
return HtmlToken.Comment(_stringBuffer.ToString());
}
开发者ID:rrsc,项目名称:AngleSharp,代码行数:28,代码来源:HtmlTokenizer.cs
示例15: TagOpen
/// <summary>
/// See 8.2.4.8 Tag open state
/// </summary>
/// <param name="c">The next input character.</param>
HtmlToken TagOpen(Char c)
{
if (c == Specification.EM)
{
return MarkupDeclaration(_src.Next);
}
else if (c == Specification.SOLIDUS)
{
return TagEnd(_src.Next);
}
else if (c.IsUppercaseAscii())
{
_stringBuffer.Clear();
_stringBuffer.Append(Char.ToLower(c));
return TagName(_src.Next, HtmlToken.OpenTag());
}
else if (c.IsLowercaseAscii())
{
_stringBuffer.Clear();
_stringBuffer.Append(c);
return TagName(_src.Next, HtmlToken.OpenTag());
}
else if (c == Specification.QM)
{
RaiseErrorOccurred(ErrorCode.BogusComment);
return BogusComment(c);
}
_model = HtmlParseMode.PCData;
RaiseErrorOccurred(ErrorCode.AmbiguousOpenTag);
_buffer.Append(Specification.LT);
return Data(c);
}
开发者ID:rrsc,项目名称:AngleSharp,代码行数:37,代码来源:HtmlTokenizer.cs
示例16: TagEnd
/// <summary>
/// See 8.2.4.9 End tag open state
/// </summary>
/// <param name="c">The next input character.</param>
HtmlToken TagEnd(Char c)
{
if (c.IsUppercaseAscii())
{
_stringBuffer.Clear();
_stringBuffer.Append(Char.ToLower(c));
return TagName(_src.Next, HtmlToken.CloseTag());
}
else if (c.IsLowercaseAscii())
{
_stringBuffer.Clear();
_stringBuffer.Append(c);
return TagName(_src.Next, HtmlToken.CloseTag());
}
else if (c == Specification.GT)
{
_model = HtmlParseMode.PCData;
RaiseErrorOccurred(ErrorCode.TagClosedWrong);
return Data(_src.Next);
}
else if (c == Specification.EOF)
{
_src.Back();
RaiseErrorOccurred(ErrorCode.EOF);
_buffer.Append(Specification.LT).Append(Specification.SOLIDUS);
return HtmlToken.EOF;
}
else
{
RaiseErrorOccurred(ErrorCode.BogusComment);
return BogusComment(c);
}
}
开发者ID:rrsc,项目名称:AngleSharp,代码行数:37,代码来源:HtmlTokenizer.cs
示例17: DoctypeSystemIdentifierDoubleQuoted
/// <summary>
/// See 8.2.4.64 DOCTYPE system identifier (double-quoted) state
/// </summary>
/// <param name="doctype">The current doctype token.</param>
HtmlToken DoctypeSystemIdentifierDoubleQuoted(HtmlDoctypeToken doctype)
{
while (true)
{
var c = GetNext();
if (c == Symbols.DoubleQuote)
{
doctype.SystemIdentifier = _stringBuffer.ToString();
_stringBuffer.Clear();
return DoctypeSystemIdentifierAfter(doctype);
}
else if (c == Symbols.Null)
{
RaiseErrorOccurred(HtmlParseError.Null);
_stringBuffer.Append(Symbols.Replacement);
}
else if (c == Symbols.GreaterThan)
{
_state = HtmlParseMode.PCData;
RaiseErrorOccurred(HtmlParseError.TagClosedWrong);
doctype.IsQuirksForced = true;
doctype.SystemIdentifier = _stringBuffer.ToString();
_stringBuffer.Clear();
break;
}
else if (c == Symbols.EndOfFile)
{
RaiseErrorOccurred(HtmlParseError.EOF);
doctype.IsQuirksForced = true;
doctype.SystemIdentifier = _stringBuffer.ToString();
_stringBuffer.Clear();
Back();
break;
}
else
{
_stringBuffer.Append(c);
}
}
return doctype;
}
开发者ID:JBTech,项目名称:AngleSharp,代码行数:47,代码来源:HtmlTokenizer.cs
示例18: DoctypeBetween
/// <summary>
/// See 8.2.4.61 Between DOCTYPE public and system identifiers state
/// </summary>
/// <param name="c">The next input character.</param>
/// <param name="doctype">The current doctype token.</param>
/// <returns>The emitted token.</returns>
HtmlToken DoctypeBetween(Char c, HtmlDoctypeToken doctype)
{
while (c.IsSpaceCharacter())
c = _src.Next;
if (c == Specification.GT)
{
_model = HtmlParseMode.PCData;
return doctype;
}
else if (c == Specification.DQ)
{
doctype.SystemIdentifier = String.Empty;
return DoctypeSystemIdentifierDoubleQuoted(_src.Next, doctype);
}
else if (c == Specification.SQ)
{
doctype.SystemIdentifier = String.Empty;
return DoctypeSystemIdentifierSingleQuoted(_src.Next, doctype);
}
else if (c == Specification.EOF)
{
RaiseErrorOccurred(ErrorCode.EOF);
doctype.IsQuirksForced = true;
_src.Back();
return doctype;
}
RaiseErrorOccurred(ErrorCode.DoctypeInvalidCharacter);
doctype.IsQuirksForced = true;
return BogusDoctype(_src.Next, doctype);
}
开发者ID:rrsc,项目名称:AngleSharp,代码行数:38,代码来源:HtmlTokenizer.cs
示例19: DoctypeSystemIdentifierSingleQuoted
/// <summary>
/// See 8.2.4.65 DOCTYPE system identifier (single-quoted) state
/// </summary>
/// <param name="doctype">The current doctype token.</param>
HtmlToken DoctypeSystemIdentifierSingleQuoted(HtmlDoctypeToken doctype)
{
while (true)
{
var c = GetNext();
switch (c)
{
case Symbols.SingleQuote:
doctype.SystemIdentifier = _stringBuffer.ToString();
_stringBuffer.Clear();
return DoctypeSystemIdentifierAfter(doctype);
case Symbols.Null:
RaiseErrorOccurred(HtmlParseError.Null);
_stringBuffer.Append(Symbols.Replacement);
continue;
case Symbols.GreaterThan:
_state = HtmlParseMode.PCData;
RaiseErrorOccurred(HtmlParseError.TagClosedWrong);
doctype.IsQuirksForced = true;
doctype.SystemIdentifier = _stringBuffer.ToString();
_stringBuffer.Clear();
break;
case Symbols.EndOfFile:
RaiseErrorOccurred(HtmlParseError.EOF);
doctype.IsQuirksForced = true;
doctype.SystemIdentifier = _stringBuffer.ToString();
_stringBuffer.Clear();
Back();
break;
default:
_stringBuffer.Append(c);
continue;
}
return doctype;
}
}
开发者ID:JBTech,项目名称:AngleSharp,代码行数:42,代码来源:HtmlTokenizer.cs
示例20: TagOpen
/// <summary>
/// See 8.2.4.8 Tag open state
/// </summary>
/// <param name="c">The next input character.</param>
HtmlToken TagOpen(Char c)
{
if (c == Symbols.Solidus)
{
return TagEnd(GetNext());
}
else if (c.IsLowercaseAscii())
{
_stringBuffer.Append(c);
return TagName(NewTagOpen());
}
else if (c.IsUppercaseAscii())
{
_stringBuffer.Append(Char.ToLower(c));
return TagName(NewTagOpen());
}
else if (c == Symbols.ExclamationMark)
{
return MarkupDeclaration(GetNext());
}
else if (c != Symbols.QuestionMark)
{
_state = HtmlParseMode.PCData;
RaiseErrorOccurred(HtmlParseError.AmbiguousOpenTag);
_stringBuffer.Append(Symbols.LessThan);
return DataText(c);
}
else
{
RaiseErrorOccurred(HtmlParseError.BogusComment);
return BogusComment(c);
}
}
开发者ID:JBTech,项目名称:AngleSharp,代码行数:37,代码来源:HtmlTokenizer.cs
注:本文中的HtmlParseMode类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论