Mega Code Archive

 
Categories / C# / XML
 

Get InnerXml without changing the spacing

// Copyright ? Microsoft Corporation. // This source file is subject to the Microsoft Permissive License. // See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx. // All other rights reserved. using System; using System.Text; using System.Xml; using System.Xml.Xsl; using System.Xml.XPath; using System.Diagnostics; using System.Collections.Generic; namespace Microsoft.Ddue.Tools {     public static class BuildComponentUtilities {         // get InnerXml without changing the spacing         public static string GetInnerXml (XPathNavigator node) {             // check for null argument, and clone so we don't change input             if (node == null) throw new ArgumentNullException("node");           XPathNavigator current = node.Clone();         // create appropriate settings for the output writer         XmlWriterSettings settings = new XmlWriterSettings();         settings.ConformanceLevel = ConformanceLevel.Fragment;         settings.OmitXmlDeclaration = true;         // construct a writer for our output         StringBuilder builder = new StringBuilder();         XmlWriter writer = XmlWriter.Create(builder, settings);         // write the output         bool writing = current.MoveToFirstChild();         while (writing) {           current.WriteSubtree(writer);           writing = current.MoveToNext();                 }         // finish up and return the result         writer.Close();         return(builder.ToString());         }     } }