所以我在这里处理一些核心的旧版代码。我们正在谈论.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] + ">");
最佳答案
我看不到开始元素“secret”的结束标签,并且foreach循环中的子标签也都是“secret”,没有结束标签
因此,请使用WriteEndElement()方法关闭标签
代码也不会显示Close方法是否称为XmlTextWriter
关于c# - XMLTextWriter C#,未找到标准xml的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11530374/