使用.NET中的XmlReader解压缩XML实体?
发布时间:2020-12-16 07:42:41 所属栏目:百科 来源:网络整理
导读:我试图在.NET(C#)中的字符串中解压缩 XML实体,但是我似乎没有使它正常工作. 例如,如果我有字符串AT amp; T,它应该被翻译成AT T. 一种方法是使用HttpUtility.HtmlDecode(),但这是HTML. 所以我有两个问题: 使用HttpUtility.HtmlDecode()解码XML实体是否安全?
我试图在.NET(C#)中的字符串中解压缩
XML实体,但是我似乎没有使它正常工作.
例如,如果我有字符串AT& amp; T,它应该被翻译成AT& T. 一种方法是使用HttpUtility.HtmlDecode(),但这是HTML. 所以我有两个问题: >使用HttpUtility.HtmlDecode()解码XML实体是否安全? 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(); } }
你的#2解决方案可以工作,但你需要调用xmlReader.Read(); (或xmlReader.MoveToContent();)之前的ReadString.
我想#1也是可以接受的,即使有这样的边缘案例,如& reg;这是一个有效的HTML实体,但不是一个XML实体 – 你的unescaper应该怎么做?抛出异常作为一个正确的XML解析器,或者只是返回“?”作为HTML解析器会做什么? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |