0

そのため、ここではいくつかのハードコアなレガシー コードを扱っています。.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] + ">");
4

1 に答える 1

0

開始要素「secret」の終了タグが表示されず、foreach ループの子タグも「secret」であり、終了タグはありません

したがって、WriteEndElement() メソッドを使用してタグを閉じてください。

また、コードは Close メソッドが XmlTextWriter と呼ばれるかどうかを示していません

于 2012-07-17T20:34:11.277 に答える