首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >分析EntityName时出错。Line1,位置844

分析EntityName时出错。Line1,位置844
EN

Stack Overflow用户
提问于 2014-05-08 20:33:44
回答 5查看 80.4K关注 0票数 48

我从下面的代码块中得到了以下异常。

分析EntityName时出错。Line1,位置844。

我试图将从表中检索到的数据集解析为数据集。

代码语言:javascript
复制
public DataSet BindMasterData(string xml)
        {
            DataSet ds = null;
            try
            {
                ds = new DataSet();
                TextReader txtReader = new StringReader(xml);
                XmlReader reader = new XmlTextReader(txtReader);
                ds.ReadXml(reader);
            }
            catch (Exception ex)
            {
                return new DataSet();
            }
            return ds;
        }

我已经找出了异常的原因,但我不能解决它。在这种特殊情况下,字符串(从DB检索)包含一个特殊字符(&)。这会导致异常。我怎么才能解决它。这方面的任何帮助都是很好的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-05-08 20:43:18

只需替换它们:

在XML元素中无效:

代码语言:javascript
复制
"   "
'   '
<   &lt;
>   &gt;
&   &amp;

代码语言:javascript
复制
  public static string UnescapeXMLValue(string xmlString)
  {
    if (xmlString == null)
        throw new ArgumentNullException("xmlString")

    return xmlString.Replace("&apos;", "'").Replace("&quot;", "\"").Replace("&gt;", ">").Replace("&lt;", "<").Replace("&amp;", "&");
  }

 public static string EscapeXMLValue(string xmlString)
  {

    if (xmlString == null)
        throw new ArgumentNullException("xmlString")

    return xmlString.Replace("'","&apos;").Replace( "\"", "&quot;").Replace(">","&gt;").Replace( "<","&lt;").Replace( "&","&amp;");
  }
票数 85
EN

Stack Overflow用户

发布于 2014-12-18 17:10:58

这个问题已经得到了回答,但在.NET 4.5中,通过使用如下的Escape方法来实现相同的结果,找到了一种更好的方法:

代码语言:javascript
复制
var xmlWithEscapedCharacters = SecurityElement.Escape(xmlWithoutEscapedCharacters);

然后将该字符串插入正在生成的XML中。

链接:MSDN - SecurityElement.Escape Method

票数 23
EN

Stack Overflow用户

发布于 2014-05-08 20:37:10

如果您的XML是用字符串连接构造的,那么您可能希望对其进行转义。&应该变成&amp;,而<>应该分别变成&lt;&gt;

也许还会有其他的。当然,您真的应该使用合适的XML编码器,而不是出于许多原因自己尝试这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23541910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档