2013-10-14 108 views
0

我在Windows窗體應用程序中使用C#代碼格式化我的xml文件時遇到了一些問題。下面是我使用這個項目的代碼:Textbox string to xml問題

private void btnSend_Click(object sender, EventArgs e) 
    { 
     string _name = tbName.ToString(); 
     string _st = tbSt.ToString(); 
     string _dx = tbDx.ToString(); 
     string _iq = tbIq.ToString(); 
     string _filename = @"c:\Add.xml"; 

     if (File.Exists(_filename)) 
     { 
      XDocument xDoc = XDocument.Load(_filename); 
      xDoc.Root.Add(new XElement("character",         
          new XElement("name", _name), 
          new XElement("st", _st), 
          new XElement("dx", _dx), 
          new XElement("iq", _iq) 
         )); 
      xDoc.Save(_filename); 
     } 

     else if (!File.Exists(_filename)) 
     { 

      XmlDocument doc = new XmlDocument(); 
      XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null); 
      doc.AppendChild(docNode); 

      XmlNode productsNode = doc.CreateElement("characters"); 
      doc.AppendChild(productsNode); 

      XmlNode productNode = doc.CreateElement("character"); 
      productsNode.AppendChild(productNode); 
      XmlNode nmNode = doc.CreateElement("name"); 
      nmNode.AppendChild(doc.CreateTextNode(_name)); 
      productNode.AppendChild(nmNode); 
      XmlNode stNode = doc.CreateElement("st"); 
      stNode.AppendChild(doc.CreateTextNode(_st)); 
      productNode.AppendChild(stNode); 
      XmlNode dxNode = doc.CreateElement("dx"); 
      dxNode.AppendChild(doc.CreateTextNode(_dx)); 
      productNode.AppendChild(dxNode); 
      XmlNode iqNode = doc.CreateElement("iq"); 
      iqNode.AppendChild(doc.CreateTextNode(_iq)); 
      productNode.AppendChild(iqNode); 

      doc.Save(@"c:\Add.xml");//must have to save 

     } 
    } 

的問題是,我的.xml文件出來附有像這樣整個TextBox類的前綴:

...

- <character> 
    <name>System.Windows.Forms.TextBox, Text: bob</name> 
    <st>System.Windows.Forms.TextBox, Text: 10</st> 
    <dx>System.Windows.Forms.TextBox, Text: 12</dx> 
    <iq>System.Windows.Forms.TextBox, Text: 08</iq> 
</character> 

我想有它看起來像這樣:

- <character> 
    <name>bob</name> 
    <st>10</st> 
    <dx>12</dx> 
    <iq>08</iq> 
</character> 

如果你們精細懂行人能借給一個手(或指向我的鏈接)我會很感激。我確實梳理了谷歌,但沒有發現這個奇怪的問題。非常感謝您提供的任何幫助。

回答

1

顯然我沒有看到。感謝那些可能會迴應的人。現在我發佈了它,這很明顯。

改變

string _name = tbName.ToString(); 

簡單地

string _name = tbName.Text; 

當然固定的問題。希望這可以幫助別人。