Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 509137
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 13, 20262026-05-13T06:58:47+00:00 2026-05-13T06:58:47+00:00

I have an XElement instance and I wish to write to a stream using

  • 0

I have an XElement instance and I wish to write to a stream using XmlWriter class. Why? Well, one of the configuration settings defines whether to use binary Xml or not. Based on this setting a suitable XmlWriter instance is created – either by XmlWriter.Create(stream) or XmlDictionaryWriter.CreateBinaryWriter(stream)).

Anyway, I am trying the following code, but it leaves the stream empty:

using (var stream = new MemoryStream())
{
  var xmlReader = new XDocument(xml).CreateReader();
  xmlReader.MoveToContent();
  var xmlWriter = GetXmlWriter(stream);
  xmlWriter.WriteNode(xmlReader, true);
  return stream.ToArray();
}

I have checked, xmlReader is properly aligned after MoveToContent at the root XML element.

I must be doing something wrong, but what?

Thanks.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-13T06:58:47+00:00Added an answer on May 13, 2026 at 6:58 am

    You haven’t shown what GetXmlWriter does… but have you tried just flushing the writer?

    xmlWriter.Flush();
    

    Alternatively, wrap the XmlWriter in another using statement:

    using (var stream = new MemoryStream())
    {
      var xmlReader = new XDocument(xml).CreateReader();
      xmlReader.MoveToContent();
      using (var xmlWriter = GetXmlWriter(stream))
      {
          xmlWriter.WriteNode(xmlReader, true);
      }
      return stream.ToArray();
    }
    

    You might want to do the same for the XmlReader as well, although in this particular case I don’t believe you particularly need to.

    Having said all this, I’m not entirely sure why you’re using an XmlReader at all. Any reason you can’t just find the relevant XElement and use XElement.WriteTo(XmlWriter)? Or if you’re trying to copy the whole document, just use XDocument.WriteTo(XmlWriter)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I have a similar scenario as this one: public class TestLinq2Xml { private XElement
I have a rather curious problem, using the XElement load method to load in
I have an XElement (myParent) containing multiple levels of children that I wish to
I have an XElement object which has a number of attributes and I simply
I have the following XElement: <Assembly name=3> <Component name=2 /> </Assembly> I would like
I want to find the Xelement attribute.value which children have a concrete attribute.value. string
If I have the following xml: XDocument xDocument = new XDocument( new XElement(RootElement, new
I have the following scenario: if(xml.Descendants(ns + Children).FirstOrDefault() != null) { XElement children =
I have got this code: XDocument xdoc = XDocument.Load(URI); XElement root = xdoc.Element(forecast); //get
Getting this weird LINQ error. title = System.Linq.Enumerable+WhereSelectEnumerableIterator`2[System.Xml.Linq.XElement,System.String Here is the code I have:

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.