2012-07-17 62 views
0

所以我在這裏處理一些硬核遺留代碼。我們正在談論.NET 2.0。我的問題是,我的程序運行時正在吐出一個異常,並顯示標準XML沒有找到數據。我正在使用類XMLTextWriter。由於這是爲了工作,我不能粘貼很多代碼,但下面是一些代碼。我想知道世界上是什麼導致了這個錯誤。任何幫助將非常感激。XMLTextWriter C#並沒有找到標準XML的數據

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

'找不到數據爲標準XML'聽起來像一個定製的錯誤消息。你是否通過代碼查找了這個字符串? – dash 2012-07-17 20:31:57

回答

0

我看不到在foreach循環的開始元素「祕密」的結束標記,也是孩子標籤是「祕密」,沒有結束標記它

所以請使用對writeEndElement()方法關閉標籤

而且代碼母鹿鼻涕顯示Close方法是否被調用的XmlTextWriter