2013-06-25 87 views
0

我正在從XML文件中讀取節點值,並希望顯示XML閱讀器範圍之外的數據。但每當我嘗試它給我一個錯誤。以XML格式顯示範圍以外的節點的值

try 
    { 
     string filename = Server.MapPath("~") + "/Blah" + "/Blah.xml"; 
     XmlDocument doc = new XmlDocument(); 
     doc.Load(filename); 

     XmlNodeList Email = doc.GetElementsByTagName("EmailTo"); 

     foreach (XmlNode node in Email) 
     { 
      XmlElement MailElement = (XmlElement)node; 

      string User1= CDBInteract.formatSQLInput(MailElement.GetElementsByTagName("User1")[0].InnerText); 
      string User2= CDBInteract.formatSQLInput(MailElement.GetElementsByTagName("User2")[0].InnerText); 

     } 

     #region Mail Sending 

     dtrecord = (DataTable)ViewState["datatable"]; 
     Utils util = new Utils(); 
     string Body = ""; 
     if (dtrecord.Rows.Count > 0) 
     { 
      DataView dv = dtrecord.DefaultView; 
      dv.Sort = "FamNmae"; 
      DataTable Dts = dv.ToTable(); 


      string SUName = CDBInteract.formatInput(ReadConfigSettings.Get("SUName")); 
      string SUEmail= CDBInteract.formatInput(ReadConfigSettings.Get("SUEmail")); 
      string SmtpClient = CDBInteract.formatInput(ReadConfigSettings.Get("SmtpClient")); 
      string EmailTo = CDBInteract.formatInput(ReadConfigSettings.Get("EmailTo")); 
      string BCC= CDBInteract.formatInput(ReadConfigSettings.Get("EmailTo")); 
      int m = util.SendMail(SUName , SUEmail, EmailTo, BCC, SmtpClient, "Blah", Body); 

     } 

這裏我想讓User1和User2的值顯示在EmailTo和BCC的字段中。

有人可以指導我通過它嗎?

回答

0

不確定確切的情況,但在foreach循環之外聲明User1和User2可能有幫助嗎?這是假設每個人總會有一條記錄。

+0

當我這樣做時,它給了我另一個錯誤'使用未分配的局部變量' – Esha

+0

嘗試像這樣聲明 string User1 =「」; – bazz

0

嘗試像下面,它會幫助你..

  try 
      { 
       string filename = Server.MapPath("~") + "/Blah" + "/Blah.xml"; 
       XmlDocument doc = new XmlDocument(); 
       doc.Load(filename);  
       XmlNodeList Email = doc.GetElementsByTagName("EmailTo"); 
       dtrecord = (DataTable)ViewState["datatable"]; 
       foreach (XmlNode node in Email) 
       { 
        XmlElement MailElement = (XmlElement)node;  
        string User1 = CDBInteract.formatSQLInput(MailElement.GetElementsByTagName("User1")[0].InnerText); 
        string User2 = CDBInteract.formatSQLInput(MailElement.GetElementsByTagName("User2")[0].InnerText); 
        Sendemail(dtrecord, User1, User2); 
       }    

      } 
      catch (Exception ex) 
      { 
      } 


     //Create a separate method for sending email 
     private void Sendemail(DataTable dtrecord, string emailto, string bcc) 
     { 
      try 
      { 
       Utils util = new Utils(); 
       string Body = ""; 
       if (dtrecord.Rows.Count > 0) 
       { 
        DataView dv = dtrecord.DefaultView; 
        dv.Sort = "FamNmae"; 
        DataTable Dts = dv.ToTable(); 
        string SUName = CDBInteract.formatInput(ReadConfigSettings.Get("SUName")); 
        string SUEmail = CDBInteract.formatInput(ReadConfigSettings.Get("SUEmail")); 
        string SmtpClient = CDBInteract.formatInput(ReadConfigSettings.Get("SmtpClient")); 
        string EmailTo = emailto; 
        string BCC = bcc; 
        int m = util.SendMail(SUName, SUEmail, EmailTo, BCC, SmtpClient, "Blah", Body); 

       } 
      } 
      catch (Exception ex) 
      { 
       throw new Exception(); 
      } 
     } 
0

我終於讀者的範圍內調用的函數。現在它正在工作。

感謝大家的回答和指導。