0

我在 Windows 窗体应用程序中使用 C# 代码格式化我的 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>

如果你们中的任何一个知识渊博的人可以伸出援助之手(或指向我一个链接),我将不胜感激。我确实梳理了谷歌,但没有发现这个特定的奇怪问题。非常感谢您提供的任何帮助。

4

1 回答 1

1

明显的我没看到。感谢那些可能会回应的人。现在我发布它,这是显而易见的。

改变

string _name = tbName.ToString();

只是为了

string _name = tbName.Text;

当然解决了这个问题。希望这可以帮助别人。

于 2013-10-14T22:19:55.487 回答