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