質問

I'm having a little problem formatting my xml file using C# code in a Windows Form app. Here is the code i'm using for this project:

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

        }
    }

The problem is that my .xml file comes out with the whole TextBox class prefix attached such as this:

...

- <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>

I'd like to have it look like this:

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

If any of you fine knowledgeable folks could lend a hand (or point me a link) I'd appreciate it. I did comb through the Google but nothing turned up with this specific odd problem. Many thanks for any help you can offer.

役に立ちましたか?

解決

The obvious I did not see. Thanks to those who may respond. Now that I post it, it is obvious.

Changing

string _name = tbName.ToString();

simply to

string _name = tbName.Text;

of course fixed the problem. Hope this may help someone else.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top