首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMLTextWriter C#,但找不到标准xml的数据

XMLTextWriter C#,但找不到标准xml的数据
EN

Stack Overflow用户
提问于 2012-07-18 04:27:07
回答 1查看 188关注 0票数 0

因此,我在这里处理一些硬核遗留代码。我们谈论的是.NET 2.0。我的问题是,我的程序在运行时抛出了一个异常,信息显示No Data found for Standard XML。我正在使用类XMLTextWriter。由于这是为了工作,我不能粘贴大量的代码,但下面是它的一小部分。我想知道到底是什么导致了这个错误。任何帮助都将不胜感激。

代码语言:javascript
复制
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] + ">");
EN

回答 1

Stack Overflow用户

发布于 2012-07-18 04:34:11

我看不到开始元素"secret“的结束标记,并且foreach循环中的子标记也是"secret”,没有结束标记。

因此,请使用WriteEndElement()方法关闭标记

此外,代码不会显示Close方法是否调用了XmlTextWriter

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

https://stackoverflow.com/questions/11530374

复制
相关文章

相似问题

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