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

前端之家收集整理的这篇文章主要介绍了使用.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解析器会做什么?

原文链接:https://www.f2er.com/xml/292235.html

猜你在找的XML相关文章