Search code examples
c#winformsxmlwriter

writing textbox values to xml file


I have been trying to write textbox value to xml file but could not get it in right format as I wish to have

I am using following code

XDocument Xdoc = new XDocument(new XElement("Users"));
if (System.IO.File.Exists("D:\\Users.xml"))
    Xdoc = XDocument.Load("D:\\Users.xml");
else
    Xdoc = new XDocument();

XElement xml = /*new XElement("Users",*/
new XElement("User",
             new XAttribute("UserId", txtUserId.Text),
             new XAttribute("Password", txtPwd.Text));

if (Xdoc.Descendants().Count() > 0)
    Xdoc.Descendants().First().Add(xml);
else
    Xdoc.Add(xml);

Xdoc.Save("D:\\Users.xml");

Here i m getting xml in this format

<User UserId="Sunny" Password="Sunny">
<User UserId="Sunny" Password="Sunny" />
<User UserId="Sunny" Password="Sunny" />
</User>

But i wanna to have like this

<Users>
  <User>
    <UserId>Sunny</UserId>
    <Password>pwd</Password>
  </User>
  <User>
    <UserId>Sunny</UserId>
    <Password>pwd</Password>
  </User>
</Users>

Solution

  • My own answer

    XDocument Xdoc = new XDocument(new XElement("Users"));
            if (System.IO.File.Exists("D:\\Users.xml"))
                Xdoc = XDocument.Load("D:\\Users.xml");
            else
            {
                Xdoc = new XDocument();
                XElement xmlstart = new XElement("Users");
                Xdoc.Add(xmlstart);
            }
            XElement xml = /*new XElement("Users",*/
                           new XElement("User",
              new XElement("UserId", txtUserId.Text),
              new XElement("Password", txtPwd.Text));
    
            if (Xdoc.Descendants().Count() > 0)
                Xdoc.Descendants().First().Add(xml);
            else
            {
                Xdoc.Add(xml);
            }
    
            Xdoc.Element("Users").Save("D:\\Users.xml");
    

    This is giving me xml like

    <?xml version="1.0" encoding="utf-8"?>
    <Users>
      <User>
      <UserId>Sunny</UserId>
      <Password>Sunny</Password>
     </User>
     <User>
       <UserId>Sunny</UserId>
       <Password>Sunny</Password>
     </User>
     <User>
       <UserId>Sunny</UserId>
       <Password>Sunny</Password>
     </User>
    </Users>