Link to home
Start Free TrialLog in
Avatar of ITsolutionWizard
ITsolutionWizardFlag for United States of America

asked on

xml .net

I would like to create xml in .net / c# - using xmldocument like below.

<?xml version="1.0" encoding="utf-8"?>
<Quotes>
  <Quote>
      <Principal>
            <FirstName></FirstName>
      </Principal>
      <Indemnitor>
            <FirstName></FirstName>
      </Indemnitor>
  </Quote>
</Quotes>
Avatar of Lokesh B R
Lokesh B R
Flag of India image

Hi,

Check this sample

  using (XmlWriter writer = XmlWriter.Create(@"D:\123.xml"))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("Quotes");


                writer.WriteStartElement("Quote");

                writer.WriteStartElement("Principal");
                writer.WriteStartElement("FirstName");
                writer.WriteString("Scott");
                writer.WriteFullEndElement();

                writer.WriteStartElement("Indemnitor");
                writer.WriteStartElement("FirstName");
                writer.WriteString(null);
                writer.WriteFullEndElement();

                writer.WriteEndElement();

                writer.WriteEndElement();
                writer.WriteEndDocument();
            }

Open in new window

Avatar of ITsolutionWizard

ASKER

The output from your codes are below and it is wrong. Try to compare my original xml with yours

<?xml version="1.0" encoding="utf-8"?>
<Quotes>
  <Quote><Principal><FirstName>Scott</FirstName>
  <Indemnitor><FirstName></FirstName></Indemnitor>
  </Principal>
  </Quote>
</Quotes>
and if i want to add another one it is overwritten my first one.
I want to keep adding item to this xml document. not just overwrite.
Hi,

You can use FOR / FOREACH loop as below to create number of repeating items in the XML file.


  using (XmlWriter writer = XmlWriter.Create(@"D:\123.xml"))
 {
                writer.WriteStartDocument();
                writer.WriteStartElement("Quotes");

                for (int i = 0; i < 2; i++)
                {
                    writer.WriteStartElement("Quote");

                    writer.WriteStartElement("Principal");
                    writer.WriteStartElement("FirstName");
                    writer.WriteString("Scott" + i);
                    writer.WriteFullEndElement();

                    writer.WriteStartElement("Indemnitor");
                    writer.WriteStartElement("FirstName");
                    writer.WriteString(null);
                    writer.WriteFullEndElement();

                    writer.WriteEndElement();
                    writer.WriteEndElement();
                    writer.WriteEndElement();
                }

                writer.WriteEndElement();
                writer.WriteEndDocument();
            }

Open in new window

The output from your codes are below and it is wrong. Try to compare my original xml with yours

<?xml version="1.0" encoding="utf-8"?>
<Quotes>
  <Quote><Principal><FirstName>Scott</FirstName>
  <Indemnitor><FirstName></FirstName></Indemnitor>
  </Principal>
  </Quote>
</Quotes>
Hi,

Check my last post with for loop code.
ASKER CERTIFIED SOLUTION
Avatar of YZlat
YZlat
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial