Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * This library is open source software licensed under terms of the MIT License.
- *
- * Copyright (c) 2009-2021 Petr Červinka - FortSoft <[email protected]>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- **
- * Version 1.0.0.0
- */
- using System;
- using System.Collections.Generic;
- namespace FortSoft.Tools {
- public sealed class HtmlEntities {
- private Dictionary<string, int> nameToNumber;
- private Dictionary<int, string> numberToName;
- public HtmlEntities() {
- nameToNumber = new Dictionary<string, int>(252);
- nameToNumber.Add("nbsp", 160);
- nameToNumber.Add("iexcl", 161);
- nameToNumber.Add("cent", 162);
- nameToNumber.Add("pound", 163);
- nameToNumber.Add("curren", 164);
- nameToNumber.Add("yen", 165);
- nameToNumber.Add("brvbar", 166);
- nameToNumber.Add("sect", 167);
- nameToNumber.Add("uml", 168);
- nameToNumber.Add("copy", 169);
- nameToNumber.Add("ordf", 170);
- nameToNumber.Add("laquo", 171);
- nameToNumber.Add("not", 172);
- nameToNumber.Add("shy", 173);
- nameToNumber.Add("reg", 174);
- nameToNumber.Add("macr", 175);
- nameToNumber.Add("deg", 176);
- nameToNumber.Add("plusmn", 177);
- nameToNumber.Add("sup2", 178);
- nameToNumber.Add("sup3", 179);
- nameToNumber.Add("acute", 180);
- nameToNumber.Add("micro", 181);
- nameToNumber.Add("para", 182);
- nameToNumber.Add("middot", 183);
- nameToNumber.Add("cedil", 184);
- nameToNumber.Add("sup1", 185);
- nameToNumber.Add("ordm", 186);
- nameToNumber.Add("raquo", 187);
- nameToNumber.Add("frac14", 188);
- nameToNumber.Add("frac12", 189);
- nameToNumber.Add("frac34", 190);
- nameToNumber.Add("iquest", 191);
- nameToNumber.Add("Agrave", 192);
- nameToNumber.Add("Aacute", 193);
- nameToNumber.Add("Acirc", 194);
- nameToNumber.Add("Atilde", 195);
- nameToNumber.Add("Auml", 196);
- nameToNumber.Add("Aring", 197);
- nameToNumber.Add("AElig", 198);
- nameToNumber.Add("Ccedil", 199);
- nameToNumber.Add("Egrave", 200);
- nameToNumber.Add("Eacute", 201);
- nameToNumber.Add("Ecirc", 202);
- nameToNumber.Add("Euml", 203);
- nameToNumber.Add("Igrave", 204);
- nameToNumber.Add("Iacute", 205);
- nameToNumber.Add("Icirc", 206);
- nameToNumber.Add("Iuml", 207);
- nameToNumber.Add("ETH", 208);
- nameToNumber.Add("Ntilde", 209);
- nameToNumber.Add("Ograve", 210);
- nameToNumber.Add("Oacute", 211);
- nameToNumber.Add("Ocirc", 212);
- nameToNumber.Add("Otilde", 213);
- nameToNumber.Add("Ouml", 214);
- nameToNumber.Add("times", 215);
- nameToNumber.Add("Oslash", 216);
- nameToNumber.Add("Ugrave", 217);
- nameToNumber.Add("Uacute", 218);
- nameToNumber.Add("Ucirc", 219);
- nameToNumber.Add("Uuml", 220);
- nameToNumber.Add("Yacute", 221);
- nameToNumber.Add("THORN", 222);
- nameToNumber.Add("szlig", 223);
- nameToNumber.Add("agrave", 224);
- nameToNumber.Add("aacute", 225);
- nameToNumber.Add("acirc", 226);
- nameToNumber.Add("atilde", 227);
- nameToNumber.Add("auml", 228);
- nameToNumber.Add("aring", 229);
- nameToNumber.Add("aelig", 230);
- nameToNumber.Add("ccedil", 231);
- nameToNumber.Add("egrave", 232);
- nameToNumber.Add("eacute", 233);
- nameToNumber.Add("ecirc", 234);
- nameToNumber.Add("euml", 235);
- nameToNumber.Add("igrave", 236);
- nameToNumber.Add("iacute", 237);
- nameToNumber.Add("icirc", 238);
- nameToNumber.Add("iuml", 239);
- nameToNumber.Add("eth", 240);
- nameToNumber.Add("ntilde", 241);
- nameToNumber.Add("ograve", 242);
- nameToNumber.Add("oacute", 243);
- nameToNumber.Add("ocirc", 244);
- nameToNumber.Add("otilde", 245);
- nameToNumber.Add("ouml", 246);
- nameToNumber.Add("divide", 247);
- nameToNumber.Add("oslash", 248);
- nameToNumber.Add("ugrave", 249);
- nameToNumber.Add("uacute", 250);
- nameToNumber.Add("ucirc", 251);
- nameToNumber.Add("uuml", 252);
- nameToNumber.Add("yacute", 253);
- nameToNumber.Add("thorn", 254);
- nameToNumber.Add("yuml", 255);
- nameToNumber.Add("fnof", 402);
- nameToNumber.Add("Alpha", 913);
- nameToNumber.Add("Beta", 914);
- nameToNumber.Add("Gamma", 915);
- nameToNumber.Add("Delta", 916);
- nameToNumber.Add("Epsilon", 917);
- nameToNumber.Add("Zeta", 918);
- nameToNumber.Add("Eta", 919);
- nameToNumber.Add("Theta", 920);
- nameToNumber.Add("Iota", 921);
- nameToNumber.Add("Kappa", 922);
- nameToNumber.Add("Lambda", 923);
- nameToNumber.Add("Mu", 924);
- nameToNumber.Add("Nu", 925);
- nameToNumber.Add("Xi", 926);
- nameToNumber.Add("Omicron", 927);
- nameToNumber.Add("Pi", 928);
- nameToNumber.Add("Rho", 929);
- nameToNumber.Add("Sigma", 931);
- nameToNumber.Add("Tau", 932);
- nameToNumber.Add("Upsilon", 933);
- nameToNumber.Add("Phi", 934);
- nameToNumber.Add("Chi", 935);
- nameToNumber.Add("Psi", 936);
- nameToNumber.Add("Omega", 937);
- nameToNumber.Add("alpha", 945);
- nameToNumber.Add("beta", 946);
- nameToNumber.Add("gamma", 947);
- nameToNumber.Add("delta", 948);
- nameToNumber.Add("epsilon", 949);
- nameToNumber.Add("zeta", 950);
- nameToNumber.Add("eta", 951);
- nameToNumber.Add("theta", 952);
- nameToNumber.Add("iota", 953);
- nameToNumber.Add("kappa", 954);
- nameToNumber.Add("lambda", 955);
- nameToNumber.Add("mu", 956);
- nameToNumber.Add("nu", 957);
- nameToNumber.Add("xi", 958);
- nameToNumber.Add("omicron", 959);
- nameToNumber.Add("pi", 960);
- nameToNumber.Add("rho", 961);
- nameToNumber.Add("sigmaf", 962);
- nameToNumber.Add("sigma", 963);
- nameToNumber.Add("tau", 964);
- nameToNumber.Add("upsilon", 965);
- nameToNumber.Add("phi", 966);
- nameToNumber.Add("chi", 967);
- nameToNumber.Add("psi", 968);
- nameToNumber.Add("omega", 969);
- nameToNumber.Add("thetasym", 977);
- nameToNumber.Add("upsih", 978);
- nameToNumber.Add("piv", 982);
- nameToNumber.Add("bull", 8226);
- nameToNumber.Add("hellip", 8230);
- nameToNumber.Add("prime", 8242);
- nameToNumber.Add("Prime", 8243);
- nameToNumber.Add("oline", 8254);
- nameToNumber.Add("frasl", 8260);
- nameToNumber.Add("weierp", 8472);
- nameToNumber.Add("image", 8465);
- nameToNumber.Add("real", 8476);
- nameToNumber.Add("trade", 8482);
- nameToNumber.Add("alefsym", 8501);
- nameToNumber.Add("larr", 8592);
- nameToNumber.Add("uarr", 8593);
- nameToNumber.Add("rarr", 8594);
- nameToNumber.Add("darr", 8595);
- nameToNumber.Add("harr", 8596);
- nameToNumber.Add("crarr", 8629);
- nameToNumber.Add("lArr", 8656);
- nameToNumber.Add("uArr", 8657);
- nameToNumber.Add("rArr", 8658);
- nameToNumber.Add("dArr", 8659);
- nameToNumber.Add("hArr", 8660);
- nameToNumber.Add("forall", 8704);
- nameToNumber.Add("part", 8706);
- nameToNumber.Add("exist", 8707);
- nameToNumber.Add("empty", 8709);
- nameToNumber.Add("nabla", 8711);
- nameToNumber.Add("isin", 8712);
- nameToNumber.Add("notin", 8713);
- nameToNumber.Add("ni", 8715);
- nameToNumber.Add("prod", 8719);
- nameToNumber.Add("sum", 8721);
- nameToNumber.Add("minus", 8722);
- nameToNumber.Add("lowast", 8727);
- nameToNumber.Add("radic", 8730);
- nameToNumber.Add("prop", 8733);
- nameToNumber.Add("infin", 8734);
- nameToNumber.Add("ang", 8736);
- nameToNumber.Add("and", 8743);
- nameToNumber.Add("or", 8744);
- nameToNumber.Add("cap", 8745);
- nameToNumber.Add("cup", 8746);
- nameToNumber.Add("int", 8747);
- nameToNumber.Add("there4", 8756);
- nameToNumber.Add("sim", 8764);
- nameToNumber.Add("cong", 8773);
- nameToNumber.Add("asymp", 8776);
- nameToNumber.Add("ne", 8800);
- nameToNumber.Add("equiv", 8801);
- nameToNumber.Add("le", 8804);
- nameToNumber.Add("ge", 8805);
- nameToNumber.Add("sub", 8834);
- nameToNumber.Add("sup", 8835);
- nameToNumber.Add("nsub", 8836);
- nameToNumber.Add("sube", 8838);
- nameToNumber.Add("supe", 8839);
- nameToNumber.Add("oplus", 8853);
- nameToNumber.Add("otimes", 8855);
- nameToNumber.Add("perp", 8869);
- nameToNumber.Add("sdot", 8901);
- nameToNumber.Add("lceil", 8968);
- nameToNumber.Add("rceil", 8969);
- nameToNumber.Add("lfloor", 8970);
- nameToNumber.Add("rfloor", 8971);
- nameToNumber.Add("lang", 9001);
- nameToNumber.Add("rang", 9002);
- nameToNumber.Add("loz", 9674);
- nameToNumber.Add("spades", 9824);
- nameToNumber.Add("clubs", 9827);
- nameToNumber.Add("hearts", 9829);
- nameToNumber.Add("diams", 9830);
- nameToNumber.Add("quot", 34);
- nameToNumber.Add("amp", 38);
- nameToNumber.Add("lt", 60);
- nameToNumber.Add("gt", 62);
- nameToNumber.Add("OElig", 338);
- nameToNumber.Add("oelig", 339);
- nameToNumber.Add("Scaron", 352);
- nameToNumber.Add("scaron", 353);
- nameToNumber.Add("Yuml", 376);
- nameToNumber.Add("circ", 710);
- nameToNumber.Add("tilde", 732);
- nameToNumber.Add("ensp", 8194);
- nameToNumber.Add("emsp", 8195);
- nameToNumber.Add("thinsp", 8201);
- nameToNumber.Add("zwnj", 8204);
- nameToNumber.Add("zwj", 8205);
- nameToNumber.Add("lrm", 8206);
- nameToNumber.Add("rlm", 8207);
- nameToNumber.Add("ndash", 8211);
- nameToNumber.Add("mdash", 8212);
- nameToNumber.Add("lsquo", 8216);
- nameToNumber.Add("rsquo", 8217);
- nameToNumber.Add("sbquo", 8218);
- nameToNumber.Add("ldquo", 8220);
- nameToNumber.Add("rdquo", 8221);
- nameToNumber.Add("bdquo", 8222);
- nameToNumber.Add("dagger", 8224);
- nameToNumber.Add("Dagger", 8225);
- nameToNumber.Add("permil", 8240);
- nameToNumber.Add("lsaquo", 8249);
- nameToNumber.Add("rsaquo", 8250);
- nameToNumber.Add("euro", 8364);
- numberToName = new Dictionary<int, string>(252);
- numberToName.Add(160, "nbsp");
- numberToName.Add(161, "iexcl");
- numberToName.Add(162, "cent");
- numberToName.Add(163, "pound");
- numberToName.Add(164, "curren");
- numberToName.Add(165, "yen");
- numberToName.Add(166, "brvbar");
- numberToName.Add(167, "sect");
- numberToName.Add(168, "uml");
- numberToName.Add(169, "copy");
- numberToName.Add(170, "ordf");
- numberToName.Add(171, "laquo");
- numberToName.Add(172, "not");
- numberToName.Add(173, "shy");
- numberToName.Add(174, "reg");
- numberToName.Add(175, "macr");
- numberToName.Add(176, "deg");
- numberToName.Add(177, "plusmn");
- numberToName.Add(178, "sup2");
- numberToName.Add(179, "sup3");
- numberToName.Add(180, "acute");
- numberToName.Add(181, "micro");
- numberToName.Add(182, "para");
- numberToName.Add(183, "middot");
- numberToName.Add(184, "cedil");
- numberToName.Add(185, "sup1");
- numberToName.Add(186, "ordm");
- numberToName.Add(187, "raquo");
- numberToName.Add(188, "frac14");
- numberToName.Add(189, "frac12");
- numberToName.Add(190, "frac34");
- numberToName.Add(191, "iquest");
- numberToName.Add(192, "Agrave");
- numberToName.Add(193, "Aacute");
- numberToName.Add(194, "Acirc");
- numberToName.Add(195, "Atilde");
- numberToName.Add(196, "Auml");
- numberToName.Add(197, "Aring");
- numberToName.Add(198, "AElig");
- numberToName.Add(199, "Ccedil");
- numberToName.Add(200, "Egrave");
- numberToName.Add(201, "Eacute");
- numberToName.Add(202, "Ecirc");
- numberToName.Add(203, "Euml");
- numberToName.Add(204, "Igrave");
- numberToName.Add(205, "Iacute");
- numberToName.Add(206, "Icirc");
- numberToName.Add(207, "Iuml");
- numberToName.Add(208, "ETH");
- numberToName.Add(209, "Ntilde");
- numberToName.Add(210, "Ograve");
- numberToName.Add(211, "Oacute");
- numberToName.Add(212, "Ocirc");
- numberToName.Add(213, "Otilde");
- numberToName.Add(214, "Ouml");
- numberToName.Add(215, "times");
- numberToName.Add(216, "Oslash");
- numberToName.Add(217, "Ugrave");
- numberToName.Add(218, "Uacute");
- numberToName.Add(219, "Ucirc");
- numberToName.Add(220, "Uuml");
- numberToName.Add(221, "Yacute");
- numberToName.Add(222, "THORN");
- numberToName.Add(223, "szlig");
- numberToName.Add(224, "agrave");
- numberToName.Add(225, "aacute");
- numberToName.Add(226, "acirc");
- numberToName.Add(227, "atilde");
- numberToName.Add(228, "auml");
- numberToName.Add(229, "aring");
- numberToName.Add(230, "aelig");
- numberToName.Add(231, "ccedil");
- numberToName.Add(232, "egrave");
- numberToName.Add(233, "eacute");
- numberToName.Add(234, "ecirc");
- numberToName.Add(235, "euml");
- numberToName.Add(236, "igrave");
- numberToName.Add(237, "iacute");
- numberToName.Add(238, "icirc");
- numberToName.Add(239, "iuml");
- numberToName.Add(240, "eth");
- numberToName.Add(241, "ntilde");
- numberToName.Add(242, "ograve");
- numberToName.Add(243, "oacute");
- numberToName.Add(244, "ocirc");
- numberToName.Add(245, "otilde");
- numberToName.Add(246, "ouml");
- numberToName.Add(247, "divide");
- numberToName.Add(248, "oslash");
- numberToName.Add(249, "ugrave");
- numberToName.Add(250, "uacute");
- numberToName.Add(251, "ucirc");
- numberToName.Add(252, "uuml");
- numberToName.Add(253, "yacute");
- numberToName.Add(254, "thorn");
- numberToName.Add(255, "yuml");
- numberToName.Add(402, "fnof");
- numberToName.Add(913, "Alpha");
- numberToName.Add(914, "Beta");
- numberToName.Add(915, "Gamma");
- numberToName.Add(916, "Delta");
- numberToName.Add(917, "Epsilon");
- numberToName.Add(918, "Zeta");
- numberToName.Add(919, "Eta");
- numberToName.Add(920, "Theta");
- numberToName.Add(921, "Iota");
- numberToName.Add(922, "Kappa");
- numberToName.Add(923, "Lambda");
- numberToName.Add(924, "Mu");
- numberToName.Add(925, "Nu");
- numberToName.Add(926, "Xi");
- numberToName.Add(927, "Omicron");
- numberToName.Add(928, "Pi");
- numberToName.Add(929, "Rho");
- numberToName.Add(931, "Sigma");
- numberToName.Add(932, "Tau");
- numberToName.Add(933, "Upsilon");
- numberToName.Add(934, "Phi");
- numberToName.Add(935, "Chi");
- numberToName.Add(936, "Psi");
- numberToName.Add(937, "Omega");
- numberToName.Add(945, "alpha");
- numberToName.Add(946, "beta");
- numberToName.Add(947, "gamma");
- numberToName.Add(948, "delta");
- numberToName.Add(949, "epsilon");
- numberToName.Add(950, "zeta");
- numberToName.Add(951, "eta");
- numberToName.Add(952, "theta");
- numberToName.Add(953, "iota");
- numberToName.Add(954, "kappa");
- numberToName.Add(955, "lambda");
- numberToName.Add(956, "mu");
- numberToName.Add(957, "nu");
- numberToName.Add(958, "xi");
- numberToName.Add(959, "omicron");
- numberToName.Add(960, "pi");
- numberToName.Add(961, "rho");
- numberToName.Add(962, "sigmaf");
- numberToName.Add(963, "sigma");
- numberToName.Add(964, "tau");
- numberToName.Add(965, "upsilon");
- numberToName.Add(966, "phi");
- numberToName.Add(967, "chi");
- numberToName.Add(968, "psi");
- numberToName.Add(969, "omega");
- numberToName.Add(977, "thetasym");
- numberToName.Add(978, "upsih");
- numberToName.Add(982, "piv");
- numberToName.Add(8226, "bull");
- numberToName.Add(8230, "hellip");
- numberToName.Add(8242, "prime");
- numberToName.Add(8243, "Prime");
- numberToName.Add(8254, "oline");
- numberToName.Add(8260, "frasl");
- numberToName.Add(8472, "weierp");
- numberToName.Add(8465, "image");
- numberToName.Add(8476, "real");
- numberToName.Add(8482, "trade");
- numberToName.Add(8501, "alefsym");
- numberToName.Add(8592, "larr");
- numberToName.Add(8593, "uarr");
- numberToName.Add(8594, "rarr");
- numberToName.Add(8595, "darr");
- numberToName.Add(8596, "harr");
- numberToName.Add(8629, "crarr");
- numberToName.Add(8656, "lArr");
- numberToName.Add(8657, "uArr");
- numberToName.Add(8658, "rArr");
- numberToName.Add(8659, "dArr");
- numberToName.Add(8660, "hArr");
- numberToName.Add(8704, "forall");
- numberToName.Add(8706, "part");
- numberToName.Add(8707, "exist");
- numberToName.Add(8709, "empty");
- numberToName.Add(8711, "nabla");
- numberToName.Add(8712, "isin");
- numberToName.Add(8713, "notin");
- numberToName.Add(8715, "ni");
- numberToName.Add(8719, "prod");
- numberToName.Add(8721, "sum");
- numberToName.Add(8722, "minus");
- numberToName.Add(8727, "lowast");
- numberToName.Add(8730, "radic");
- numberToName.Add(8733, "prop");
- numberToName.Add(8734, "infin");
- numberToName.Add(8736, "ang");
- numberToName.Add(8743, "and");
- numberToName.Add(8744, "or");
- numberToName.Add(8745, "cap");
- numberToName.Add(8746, "cup");
- numberToName.Add(8747, "int");
- numberToName.Add(8756, "there4");
- numberToName.Add(8764, "sim");
- numberToName.Add(8773, "cong");
- numberToName.Add(8776, "asymp");
- numberToName.Add(8800, "ne");
- numberToName.Add(8801, "equiv");
- numberToName.Add(8804, "le");
- numberToName.Add(8805, "ge");
- numberToName.Add(8834, "sub");
- numberToName.Add(8835, "sup");
- numberToName.Add(8836, "nsub");
- numberToName.Add(8838, "sube");
- numberToName.Add(8839, "supe");
- numberToName.Add(8853, "oplus");
- numberToName.Add(8855, "otimes");
- numberToName.Add(8869, "perp");
- numberToName.Add(8901, "sdot");
- numberToName.Add(8968, "lceil");
- numberToName.Add(8969, "rceil");
- numberToName.Add(8970, "lfloor");
- numberToName.Add(8971, "rfloor");
- numberToName.Add(9001, "lang");
- numberToName.Add(9002, "rang");
- numberToName.Add(9674, "loz");
- numberToName.Add(9824, "spades");
- numberToName.Add(9827, "clubs");
- numberToName.Add(9829, "hearts");
- numberToName.Add(9830, "diams");
- numberToName.Add(34, "quot");
- numberToName.Add(38, "amp");
- numberToName.Add(60, "lt");
- numberToName.Add(62, "gt");
- numberToName.Add(338, "OElig");
- numberToName.Add(339, "oelig");
- numberToName.Add(352, "Scaron");
- numberToName.Add(353, "scaron");
- numberToName.Add(376, "Yuml");
- numberToName.Add(710, "circ");
- numberToName.Add(732, "tilde");
- numberToName.Add(8194, "ensp");
- numberToName.Add(8195, "emsp");
- numberToName.Add(8201, "thinsp");
- numberToName.Add(8204, "zwnj");
- numberToName.Add(8205, "zwj");
- numberToName.Add(8206, "lrm");
- numberToName.Add(8207, "rlm");
- numberToName.Add(8211, "ndash");
- numberToName.Add(8212, "mdash");
- numberToName.Add(8216, "lsquo");
- numberToName.Add(8217, "rsquo");
- numberToName.Add(8218, "sbquo");
- numberToName.Add(8220, "ldquo");
- numberToName.Add(8221, "rdquo");
- numberToName.Add(8222, "bdquo");
- numberToName.Add(8224, "dagger");
- numberToName.Add(8225, "Dagger");
- numberToName.Add(8240, "permil");
- numberToName.Add(8249, "lsaquo");
- numberToName.Add(8250, "rsaquo");
- numberToName.Add(8364, "euro");
- }
- public string GetDecEntity(int ascii) {
- return numberToName.ContainsKey(ascii) || ascii > 127 ? "&#" + ascii + ";" : null;
- }
- public string GetHexEntity(int ascii) {
- return numberToName.ContainsKey(ascii) || ascii > 127 ? "&#x" + ascii.ToString("X") + ";" : null;
- }
- public string GetNameEntity(int ascii) {
- return numberToName.ContainsKey(ascii) ? "&" + numberToName[ascii] + ";" : null;
- }
- public int GetAsciiFromHtmlEntity(string htmlEntity) {
- int ascii = 0;
- if (htmlEntity.ToUpper().StartsWith("&#X")) {
- ascii = Convert.ToInt32(htmlEntity.Substring(3, htmlEntity.Length - 4), 16);
- } else if (htmlEntity.StartsWith("&#")) {
- ascii = Convert.ToInt32(htmlEntity.Substring(2, htmlEntity.Length - 3));
- } else if (htmlEntity.StartsWith("&")) {
- return nameToNumber[htmlEntity.Substring(1, htmlEntity.Length - 2)];
- } else {
- return nameToNumber[htmlEntity];
- }
- if (numberToName.ContainsKey(ascii) || ascii > 127) {
- return ascii;
- } else {
- throw new NotImplementedException();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement