.NET(C#)で文字列内のXMLエンティティをエスケープ解除しようとしていますが、正しく機能しないようです。
たとえば、文字列がある場合は、AT&T
に変換する必要がありますAT&T
。
1つの方法は、HttpUtility.HtmlDecode()を使用することですが、これはHTML用です。
だから私はこれについて2つの質問があります:
XMLエンティティのデコードにHttpUtility.HtmlDecode()を使用しても安全ですか?
XmlReader(または同様のもの)を使用してこれを行うにはどうすればよいですか?次のことを試しましたが、常に空の文字列が返されます。
static string ReplaceEscapes(string text) { StringReader reader = new StringReader(text); XmlReaderSettings settings = new XmlReaderSettings(); settings.ConformanceLevel = ConformanceLevel.Fragment; using (XmlReader xmlReader = XmlReader.Create(reader, settings)) { return xmlReader.ReadString(); } }