简体   繁体   中英

how to append element to xml document dynamically?

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.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM