当前位置: 首页>>代码示例>>C#>>正文


C# HtmlTokenizerState类代码示例

本文整理汇总了C#中HtmlTokenizerState的典型用法代码示例。如果您正苦于以下问题:C# HtmlTokenizerState类的具体用法?C# HtmlTokenizerState怎么用?C# HtmlTokenizerState使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


HtmlTokenizerState类属于命名空间,在下文中一共展示了HtmlTokenizerState类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ReadGenericRawTextEndTagOpen

        void ReadGenericRawTextEndTagOpen(bool decoded, HtmlTokenizerState rawText, HtmlTokenizerState rawTextEndTagName)
        {

            char c;
            CharMode charMode;
            if (!Peek(out c, out charMode))
            {
                TokenizerState = HtmlTokenizerState.EndOfFile;
                EmitDataToken(decoded);
                return;
            }
            switch (charMode)
            {
                //IsAsciiLetter(c)
                case CharMode.UpperAsciiLetter:
                case CharMode.LowerAsciiLetter:
                    TokenizerState = rawTextEndTagName;
                    name.Append(c);
                    data.Append(c);
                    ReadNext();
                    break;
                default:
                    TokenizerState = rawText;
                    break;
            }
        }
开发者ID:prepare,项目名称:WebParser,代码行数:26,代码来源:HtmlTokenizer_ReadCharRef_RawText_CData.cs

示例2: ReadGenericRawTextLessThan

        void ReadGenericRawTextLessThan(HtmlTokenizerState rawText, HtmlTokenizerState rawTextEndTagOpen)
        {
            char c;
            if (!Peek(out c))
            {
                //?
                throw new System.NotSupportedException();
            }

            data.Append('<');
            switch (c)
            {
                case '/':
                    TokenizerState = rawTextEndTagOpen;
                    data.Append('/');
                    name.Length = 0;
                    ReadNext();
                    break;
                default:
                    TokenizerState = rawText;
                    break;
            }
        }
开发者ID:prepare,项目名称:WebParser,代码行数:23,代码来源:HtmlTokenizer_ReadCharRef_RawText_CData.cs

示例3: ReadScriptDataEscapeStartDash

		// 8.2.4.21 Script data escape start dash state
		HtmlToken ReadScriptDataEscapeStartDash ()
		{
			int nc = Peek ();

			if (nc == '-') {
				TokenizerState = HtmlTokenizerState.ScriptDataEscapedDashDash;
				data.Append ('-');
				Read ();
			} else {
				TokenizerState = HtmlTokenizerState.ScriptData;
			}

			return null;
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:15,代码来源:HtmlTokenizer.cs

示例4: ReadScriptDataEndTagOpen

		// 8.2.4.18 Script data end tag open state
		HtmlToken ReadScriptDataEndTagOpen ()
		{
			int nc = Peek ();
			char c;

			if (nc == -1) {
				TokenizerState = HtmlTokenizerState.EndOfFile;
				return EmitScriptDataToken ();
			}

			c = (char) nc;

			if (c == 'S' || c == 's') {
				TokenizerState = HtmlTokenizerState.ScriptDataEndTagName;
				name.Append ('s');
				data.Append (c);
				Read ();
			} else {
				TokenizerState = HtmlTokenizerState.ScriptData;
			}

			return null;
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:24,代码来源:HtmlTokenizer.cs

示例5: ReadTagName

		// 8.2.4.10 Tag name state
		HtmlToken ReadTagName ()
		{
			do {
				int nc = Read ();
				char c;

				if (nc == -1) {
					TokenizerState = HtmlTokenizerState.EndOfFile;
					name.Length = 0;

					return EmitDataToken (false);
				}

				c = (char) nc;

				// Note: we save the data in case we hit a parse error and have to emit a data token
				data.Append (c);

				switch (c) {
				case '\t': case '\r': case '\n': case '\f': case ' ':
					TokenizerState = HtmlTokenizerState.BeforeAttributeName;
					break;
				case '/':
					TokenizerState = HtmlTokenizerState.SelfClosingStartTag;
					break;
				case '>':
					tag = CreateTagToken (name.ToString (), isEndTag);
					data.Length = 0;
					name.Length = 0;

					return EmitTagToken ();
				default:
					name.Append (c == '\0' ? '\uFFFD' : c);
					break;
				}
			} while (TokenizerState == HtmlTokenizerState.TagName);

			tag = CreateTagToken (name.ToString (), isEndTag);
			name.Length = 0;

			return null;
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:43,代码来源:HtmlTokenizer.cs

示例6: ReadTagOpen

		// 8.2.4.8 Tag open state
		HtmlToken ReadTagOpen ()
		{
			int nc = Read ();
			char c;

			if (nc == -1) {
				TokenizerState = HtmlTokenizerState.EndOfFile;
				var token = CreateDataToken ("<");
				return token;
			}

			c = (char) nc;

			// Note: we save the data in case we hit a parse error and have to emit a data token
			data.Append ('<');
			data.Append (c);

			switch ((c = (char) nc)) {
			case '!': TokenizerState = HtmlTokenizerState.MarkupDeclarationOpen; break;
			case '?': TokenizerState = HtmlTokenizerState.BogusComment; break;
			case '/': TokenizerState = HtmlTokenizerState.EndTagOpen; break;
			default:
				if (IsAsciiLetter (c)) {
					TokenizerState = HtmlTokenizerState.TagName;
					isEndTag = false;
					name.Append (c);
				} else {
					TokenizerState = HtmlTokenizerState.Data;
				}
				break;
			}

			return null;
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:35,代码来源:HtmlTokenizer.cs

示例7: ReadScriptData

		// 8.2.4.6 Script data state
		HtmlToken ReadScriptData ()
		{
			do {
				int nc = Read ();
				char c;

				if (nc == -1) {
					TokenizerState = HtmlTokenizerState.EndOfFile;
					break;
				}

				c = (char) nc;

				switch (c) {
				case '<':
					TokenizerState = HtmlTokenizerState.ScriptDataLessThan;
					break;
				default:
					data.Append (c == '\0' ? '\uFFFD' : c);
					break;
				}
			} while (TokenizerState == HtmlTokenizerState.ScriptData);

			return EmitScriptDataToken ();
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:26,代码来源:HtmlTokenizer.cs

示例8: ReadRcData

		// 8.2.4.3 RCDATA state
		HtmlToken ReadRcData ()
		{
			do {
				int nc = Read ();
				char c;

				if (nc == -1) {
					TokenizerState = HtmlTokenizerState.EndOfFile;
					break;
				}

				c = (char) nc;

				switch (c) {
				case '&':
					if (DecodeCharacterReferences) {
						TokenizerState = HtmlTokenizerState.CharacterReferenceInRcData;
						return null;
					}

					goto default;
				case '<':
					TokenizerState = HtmlTokenizerState.RcDataLessThan;
					return EmitDataToken (DecodeCharacterReferences);
				default:
					data.Append (c == '\0' ? '\uFFFD' : c);
					break;
				}
			} while (TokenizerState == HtmlTokenizerState.RcData);

			return EmitDataToken (DecodeCharacterReferences);
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:33,代码来源:HtmlTokenizer.cs

示例9: ReadAfterDocTypeSystemKeyword

		// 8.2.4.62 After DOCTYPE system keyword state
		HtmlToken ReadAfterDocTypeSystemKeyword ()
		{
			int nc = Read ();
			char c;

			if (nc == -1) {
				TokenizerState = HtmlTokenizerState.EndOfFile;
				doctype.ForceQuirksMode = true;
				return EmitDocType ();
			}

			c = (char) nc;

			// Note: we save the data in case we hit a parse error and have to emit a data token
			data.Append (c);

			switch (c) {
			case '\t': case '\r': case '\n': case '\f': case ' ':
				TokenizerState = HtmlTokenizerState.BeforeDocTypeSystemIdentifier;
				break;
			case '"': case '\'': // parse error
				TokenizerState = HtmlTokenizerState.DocTypeSystemIdentifierQuoted;
				doctype.SystemIdentifier = string.Empty;
				quote = c;
				break;
			case '>': // parse error
				TokenizerState = HtmlTokenizerState.Data;
				doctype.ForceQuirksMode = true;
				return EmitDocType ();
			default: // parse error
				TokenizerState = HtmlTokenizerState.BogusDocType;
				doctype.ForceQuirksMode = true;
				break;
			}

			return null;
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:38,代码来源:HtmlTokenizer.cs

示例10: ReadAfterDocTypeName

		// 8.2.4.55 After DOCTYPE name state
		HtmlToken ReadAfterDocTypeName ()
		{
			do {
				int nc = Read ();
				char c;

				if (nc == -1) {
					TokenizerState = HtmlTokenizerState.EndOfFile;
					doctype.ForceQuirksMode = true;
					return EmitDocType ();
				}

				c = (char) nc;

				// Note: we save the data in case we hit a parse error and have to emit a data token
				data.Append (c);

				switch (c) {
				case '\t': case '\r': case '\n': case '\f': case ' ':
					break;
				case '>':
					TokenizerState = HtmlTokenizerState.Data;
					return EmitDocType ();
				default:
					name.Append (c);
					if (name.Length < 6)
						break;

					if (NameIs ("public")) {
						TokenizerState = HtmlTokenizerState.AfterDocTypePublicKeyword;
						doctype.PublicKeyword = name.ToString ();
					} else if (NameIs ("system")) {
						TokenizerState = HtmlTokenizerState.AfterDocTypeSystemKeyword;
						doctype.SystemKeyword = name.ToString ();
					} else {
						TokenizerState = HtmlTokenizerState.BogusDocType;
					}

					name.Length = 0;
					return null;
				}
			} while (true);
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:44,代码来源:HtmlTokenizer.cs

示例11: ReadDocTypeName

		// 8.2.4.54 DOCTYPE name state
		HtmlToken ReadDocTypeName ()
		{
			do {
				int nc = Read ();
				char c;

				if (nc == -1) {
					TokenizerState = HtmlTokenizerState.EndOfFile;
					doctype.Name = name.ToString ();
					doctype.ForceQuirksMode = true;
					name.Length = 0;

					return EmitDocType ();
				}

				c = (char) nc;

				// Note: we save the data in case we hit a parse error and have to emit a data token
				data.Append (c);

				switch (c) {
				case '\t': case '\r': case '\n': case '\f': case ' ':
					TokenizerState = HtmlTokenizerState.AfterDocTypeName;
					break;
				case '>':
					TokenizerState = HtmlTokenizerState.Data;
					doctype.Name = name.ToString ();
					name.Length = 0;

					return EmitDocType ();
				case '\0':
					name.Append ('\uFFFD');
					break;
				default:
					name.Append (c);
					break;
				}
			} while (TokenizerState == HtmlTokenizerState.DocTypeName);

			doctype.Name = name.ToString ();
			name.Length = 0;

			return null;
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:45,代码来源:HtmlTokenizer.cs

示例12: ReadDocType

		// 8.2.4.52 DOCTYPE state
		HtmlToken ReadDocType ()
		{
			int nc = Peek ();
			char c;

			if (nc == -1) {
				TokenizerState = HtmlTokenizerState.EndOfFile;
				doctype.ForceQuirksMode = true;
				name.Length = 0;

				return EmitDocType ();
			}

			TokenizerState = HtmlTokenizerState.BeforeDocTypeName;
			c = (char) nc;

			switch (c) {
			case '\t': case '\r': case '\n': case '\f': case ' ':
				data.Append (c);
				Read ();
				break;
			}

			return null;
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:26,代码来源:HtmlTokenizer.cs

示例13: ReadCommentEndBang

		// 8.2.4.51 Comment end bang state
		HtmlToken ReadCommentEndBang ()
		{
			int nc = Read ();
			char c;

			if (nc == -1) {
				TokenizerState = HtmlTokenizerState.EndOfFile;
				return EmitCommentToken (name);
			}

			c = (char) nc;

			data.Append (c);

			switch (c) {
			case '-':
				TokenizerState = HtmlTokenizerState.CommentEndDash;
				name.Append ("--!");
				break;
			case '>':
				TokenizerState = HtmlTokenizerState.Data;
				return EmitCommentToken (name);
			default: // parse error
				TokenizerState = HtmlTokenizerState.Comment;
				name.Append ("--!");
				name.Append (c == '\0' ? '\uFFFD' : c);
				break;
			}

			return null;
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:32,代码来源:HtmlTokenizer.cs

示例14: ReadCommentEnd

		// 8.2.4.50 Comment end state
		HtmlToken ReadCommentEnd ()
		{
			do {
				int nc = Read ();
				char c;

				if (nc == -1) {
					TokenizerState = HtmlTokenizerState.EndOfFile;
					return EmitCommentToken (name);
				}

				c = (char) nc;

				// Note: we save the data in case we hit a parse error and have to emit a data token
				data.Append (c);

				switch (c) {
				case '>':
					TokenizerState = HtmlTokenizerState.Data;
					return EmitCommentToken (name);
				case '!': // parse error
					TokenizerState = HtmlTokenizerState.CommentEndBang;
					return null;
				case '-':
					name.Append ('-');
					break;
				default:
					TokenizerState = HtmlTokenizerState.Comment;
					name.Append (c == '\0' ? '\uFFFD' : c);
					return null;
				}
			} while (true);
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:34,代码来源:HtmlTokenizer.cs

示例15: ReadCommentEndDash

		// 8.2.4.49 Comment end dash state
		HtmlToken ReadCommentEndDash ()
		{
			int nc = Read ();
			char c;

			if (nc == -1) {
				TokenizerState = HtmlTokenizerState.Data;
				return EmitCommentToken (name);
			}

			c = (char) nc;

			data.Append (c);

			switch (c) {
			case '-':
				TokenizerState = HtmlTokenizerState.CommentEnd;
				break;
			default:
				TokenizerState = HtmlTokenizerState.Comment;
				name.Append ('-');
				name.Append (c == '\0' ? '\uFFFD' : c);
				break;
			}

			return null;
		}
开发者ID:cybercircuits,项目名称:MimeKit,代码行数:28,代码来源:HtmlTokenizer.cs


注:本文中的HtmlTokenizerState类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。