简体   繁体   English

XMLTextWriter C#,未找到标准xml的数据

[英]XMLTextWriter C# and no data found for standard xml

So I am dealing with some hard core Legacy code here. 所以我在这里处理一些核心的旧版代码。 We are talking .NET 2.0. 我们正在谈论.NET 2.0。 My problem is that my program when run is spitting out an exception with the information saying No Data found for Standard XML. 我的问题是我的程序在运行时会吐出一个异常,并显示信息说没有为标准XML找到数据。 I am using the class XMLTextWriter. 我正在使用XMLTextWriter类。 As this is for work I cannot paste a lot of the code however below is a bit of it. 因为这是工作,所以我不能粘贴很多代码,但是下面是其中的一部分。 I am wondering what in the world is causing this error. 我想知道到底是什么导致了此错误。 Any help would be much appreciated. 任何帮助将非常感激。

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] + ">");

I cannot see the end tag for start element "secret" and also the child tags in the foreach loop are "secret" with no end tag for it 我看不到开始元素“ secret”的结束标签,并且foreach循环中的子标签也都是“ secret”,没有结束标签

So please use the WriteEndElement() method to close tags 因此,请使用WriteEndElement()方法关闭标签

Also the code doe snot show the whether Close method is called XmlTextWriter 代码也不会显示Close方法是否称为XmlTextWriter

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM