how to append element to xml document dynamically?

256 views Asked by At

As per following code I have created xml file and writing on it iteratively. But the problem is it is overwriting on the file. I want to append new element to file, here the foreach is iteratively writing contents of wrobj to xml, but again overwriting

XmlTextWriter xtWriter = new XmlTextWriter("demoxml.xml",Encoding.UTF8);
xtWriter.Formatting = System.Xml.Formatting.Indented;
xtWriter.WriteStartElement("Selected-Workspace");
xtWriter.WriteStartElement("Context-Details");

xtWriter.WriteStartElement("Conid");
xtWriter.WriteString(it.id);
xtWriter.WriteEndElement();

xtWriter.WriteStartElement("Attributes"); //attributes started

xtWriter.WriteStartElement("name");
xtWriter.WriteString(it.attributes.name);
xtWriter.WriteEndElement();
xtWriter.WriteStartElement("organizationReference");
xtWriter.WriteString(it.attributes.organizationReference);
xtWriter.WriteEndElement();
xtWriter.WriteStartElement("organizationReferenceName");
xtWriter.WriteString(it.attributes.organizationReference_name);
xtWriter.WriteEndElement();
xtWriter.WriteStartElement("type");
xtWriter.WriteString(it.attributes.type);
xtWriter.WriteEndElement();

xtWriter.WriteEndElement();// End Attributes
foreach (WorkspaceRootObject wro in wrObj) 
{
    xtWriter.WriteStartElement("Workspace-Details"); // Workspace start

    xtWriter.WriteStartElement("WorkspaceId");
    xtWriter.WriteString(wro.id);
    xtWriter.WriteEndElement();
    xtWriter.WriteStartElement("name");
    xtWriter.WriteString(wro.name);
    xtWriter.WriteEndElement();
    xtWriter.WriteStartElement("description");
    xtWriter.WriteString(wro.description);
    xtWriter.WriteEndElement();
    xtWriter.WriteStartElement("context-id");
    xtWriter.WriteString(wro.contextId);
    xtWriter.WriteEndElement();

    xtWriter.WriteEndElement(); //End Workspace
}

xtWriter.WriteEndElement();
xtWriter.WriteEndElement();
xtWriter.Flush();
xtWriter.Close();

how do I append contents of wrobj object to file.

1

There are 1 answers

2
SajuPK On

When you create the file for the first time do as you have done above. The next time, check if the file exists, and use XDocument to append as given in the here