使用.NET中的XmlReader解压缩XML实体?

我试图在.NET(C#)中的字符串中解压缩 XML实体,但是我似乎没有使它正常工作.

例如,如果我有字符串AT& amp; T,它应该被翻译成AT& T.

一种方法是使用HttpUtility.HtmlDecode(),但这是HTML.

所以我有两个问题:

>使用HttpUtility.HtmlDecode()解码XML实体是否安全?
>如何使用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();
    }
}
你的#2解决方案可以工作,但你需要调用xmlReader.Read(); (或xmlReader.MovetoContent();)之前的ReadString.

我想#1也是可以接受的,即使有这样的边缘案例,如& reg;这是一个有效的HTML实体,但不是一个XML实体 – 你的unescaper应该怎么做?抛出异常作为一个正确的XML解析器,或者只是返回“?”作为HTML解析器会做什么?

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念