简体   繁体   English

如何动态地将元素添加到xml文档?

[英]how to append element to xml document dynamically?

As per following code I have created xml file and writing on it iteratively. 按照以下代码,我创建了xml文件并对其进行迭代编写。 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 我想将新元素添加到文件中,这里的foreach会将wrobj的内容迭代地写入xml,但是再次覆盖

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. 如何将wrobj对象的内容附加到文件。

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 下次,检查文件是否存在,并使用XDocument附加此处给出的内容

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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