Get InnerXml without changing the spacing : DOM « XML « C# / C Sharp






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());

        }

    }

}

   
    
  








Related examples in the same category

1.DOM feature check
2.Create Xml Document, Node
3.Load String from xml element
4.Load boolean value from xml element
5.Get integer value from xml element
6.Get attribute from XmlNode
7.Set Xml Node Value
8.Get Value String from Xml
9.Get Inner Xml
10.Add Xml Element
11.Returns the InnerText value from a node or string.Empty if the node is null.
12.Sets the inner text in a node. If the node doesn't exist, it creates a new one and adds the text to it.