Public Shared html_entities As String() = New String() {""", "'", "&", "<", ">", " ", "¡", "¤", "¢", "£", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®", "™", "¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "×", "÷", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "Œ", "œ", "Š", "š", "Ÿ", "ˆ", "˜", " ", " ", " ", "‌", "‍", "‎", "‏", "–", "—", "‘", "’", "‚", "“", "”", "„", "†", "‡", "…", "‰", "‹", "›", "€"}
Public Shared xml_entities As String() = New String() {""", "'", "&", "<", ">", " ", "¡", "¤", "¢", "£", "¥", "¦", "§", "¨", "©", "ª", "«", "¬", "­", "®", "™", "¯", "°", "±", "²", "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", "¿", "×", "÷", "À", "Á", "Â", "Ã", "Ä", "Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ", "ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "ø", "ù", "ú", "û", "ü", "ý", "þ", "ÿ", "Œ", "œ", "Š", "š", "Ÿ", "ˆ", "˜", " ", " ", " ", "‌", "‍", "‎", "‏", "–", "—", "‘", "’", "‚", "“", "”", "„", "†", "‡", "…", "‰", "‹", "›", "€"}
Public Shared Function XhtmlToXml(ByVal xhtml As String) As String
xhtml = Regex.Replace(xhtml, "<!DOCTYPE\s.*>", "", RegexOptions.IgnoreCase)
xhtml = Regex.Replace(xhtml, "&\w+;", New MatchEvaluator(AddressOf ReplaceEntity))
Return xhtml
End Function
Private Shared Function ReplaceEntity(ByVal m As Match) As String
Dim index As Integer = Array.IndexOf(html_entities, m.Value)
If index >= 0 Then
Return xml_entities(index)
Else
Return m.Value
End If
End Function