【问题标题】:XMLTextWriter C# and no data found for standard xmlXMLTextWriter C#,没有找到标准 xml 的数据
【发布时间】:2012-07-17 20:27:07
【问题描述】:

所以我在这里处理一些硬核遗留代码。我们正在谈论 .NET 2.0。我的问题是我的程序在运行时吐出一个异常信息,说没有为标准 XML 找到数据。我正在使用 XMLTextWriter 类。由于这是为了工作,我不能粘贴很多代码,但下面是其中的一部分。我想知道世界上是什么导致了这个错误。任何帮助将不胜感激。

string sStdFile=folder + sNewDtTm + "_s.xml";


                // Create a new XmlTextWriter instance
                if(dt.Rows.Count>0) 
                {
                    XmlTextWriter writer = new XmlTextWriter(sStdFile, Encoding.UTF8);

                    // start writing!
                    writer.WriteStartDocument();
                    writer.WriteStartElement("secret");

                    foreach(DataRow dr in dt.Rows)
                    {

                        writer.WriteStartElement("secret");

                        writer.WriteElementString(sFieldNames[0], dr[sFieldNames[0]].ToString());
                        writer.WriteElementString(sFieldNames[1], dr[sFieldNames[1]].ToString());
                        writer.WriteElementString(sFieldNames[2], dr[sFieldNames[2]].ToString());
                        writer.WriteElementString(sFieldNames[3], dr[sFieldNames[3]].ToString());
                        writer.WriteElementString(sFieldNames[4], dr[sFieldNames[4]].ToString());
                        writer.WriteElementString(sFieldNames[5], dr[sFieldNames[5]].ToString());
                        writer.WriteElementString(sFieldNames[6], dr[sFieldNames[6]].ToString());
                        writer.WriteElementString(sFieldNames[7], dr[sFieldNames[7]].ToString());
                        writer.WriteElementString(sFieldNames[8], dr[sFieldNames[8]].ToString());
                        writer.WriteElementString(sFieldNames[9], dr[sFieldNames[9]].ToString());
                        writer.WriteElementString(sFieldNames[10], dr[sFieldNames[10]].ToString());
                        writer.WriteElementString(sFieldNames[11], dr[sFieldNames[11]].ToString());
                        writer.WriteElementString(sFieldNames[12], dr[sFieldNames[12]].ToString());

                        writer.WriteRaw("<" + sFieldNames[13] + ">");
                        writer.WriteCData(dr[sFieldNames[13]].ToString());
                        writer.WriteRaw("</" + sFieldNames[13] + ">");

【问题讨论】:

  • No Data found for Standard XML 听起来像是定制的错误消息。你搜索过这个字符串的代码吗?

标签: c# exception error-handling xmltextwriter


【解决方案1】:

我看不到开始元素“secret”的结束标签,而且 foreach 循环中的子标签是“secret”,没有结束标签

所以请使用 WriteEndElement() 方法关闭标签

此外,代码也没有显示 Close 方法是否被称为 XmlTextWriter

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-27
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    相关资源
    最近更新 更多