0

So I am dealing with some hard core Legacy code here. We are talking .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. I am using the class 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] + ">");
Tony
  • 4,609
  • 2
  • 22
  • 32
  • 1
    `No Data found for Standard XML` sounds like a bespoke error message. Have you searched through the code for this string? – dash Jul 17 '12 at 20:31

1 Answers1

0

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

So please use the WriteEndElement() method to close tags

Also the code doe snot show the whether Close method is called XmlTextWriter

HatSoft
  • 11,077
  • 3
  • 28
  • 43