1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| func entityParser(text string) string { n := len(text) sb := strings.Builder{} wordMap := map[string]string{ """: "\"", "'": "'", "&": "&", ">": ">", "<": "<", "⁄": "/", } for i := 0; i < n; { isReplace := false if text[i] == '&' { for source, target := range wordMap { if i + len(source) <= n && text[i:i+len(source)] == source { sb.WriteString(target) i += len(source) isReplace = true break } } } if(!isReplace) { sb.WriteString(string(text[i])) i++ } } return sb.String() }
|