Search code examples
c#xmlxmltextreaderxmltextwriter

how to use XMLTextWriter to write XML node at a specified position


I have an xml file likes below.

<?xml version="1.0" encoding="utf-8" ?>
<Book>
  <Title>Title</Title>
  <Content>Content</Content>
</Book>

I want to write a new node after 'Content', I know how to use XMLDocument to do that, is there a way to use XMLTextWriter to do that?


Solution

  • You will have to write the whole Xml document, i.e. all elements and attributes and attribute values by using the XmlTextWriter. After you've written the <Content> element, you can write your additional element.

    Something like this:

    writer.WriteStartDocument();
    writer.WriteStartElement("Book");
    writer.WriteStartElement("Title");
    writer.WriteString("Title");
    writer.WriteEndElement();
    writer.WriteStartElement("Content");
    writer.WriteString("Content");
    writer.WriteEndElement();
    // insert your new data here
    writer.WriteEndElement();
    writer.WriteEndDocument();