using System.Collections.Generic;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
using System.IO.Compression;
public static void Test()
string outerXml = @"<kk:Root xmlns=""https://stackoverflow.com/questions/72740501/"" xmlns:kk=""kkNamespace""><Data></Data></kk:Root>";
string innerXml = @"<ElementToAdd Id=""10101""><InnerValue>my inner value</InnerValue></ElementToAdd><ElementToAdd Id=""20202""><InnerValue>another inner value</InnerValue></ElementToAdd>";
var doc = XDocument.Parse(outerXml);
Console.WriteLine(outerXml);
Console.WriteLine(innerXml);
var xmlElement = doc.Root.Elements().First();
XmlNamespaceManager mgr = new XmlNamespaceManager(new NameTable());
mgr.AddNamespace("", xmlElement.GetDefaultNamespace().ToString());
XmlParserContext ctx = new XmlParserContext(null, mgr, null, XmlSpace.Default);
using (var textReader = new StringReader(innerXml))
using (var reader = XmlReader.Create(textReader, new XmlReaderSettings { ConformanceLevel = ConformanceLevel.Fragment }, ctx))
using (var writer = xmlElement.CreateWriter())
writer.WriteNode(reader, true);
public static class XmlSerializationHelper
public static string GetOuterXml(this XmlNode node, bool indent = true)
using (var textWriter = new StringWriter())
var settings = new XmlWriterSettings
OmitXmlDeclaration = true,
using (var xmlWriter = XmlWriter.Create(textWriter, settings))
return textWriter.ToString();
public static void Main()
Console.WriteLine("Environment version: {0} ({1}, {2})", System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription , Environment.Version, Environment.OSVersion);
Console.WriteLine("Failed with unhandled exception: ");