CSharp · Console
using System;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
public class Program
{
[XmlRoot]
public class Request
{
[XmlElement]
public string SomeStuff { get; set; }
[XmlAnyElement]
public XmlElement Payload { get; set; }
}
public static XmlElement GetPayloadElement(string xml)
{
var xmlDoc = new XmlDocument();
var payloadElem = xmlDoc.CreateElement("Payload");
try
{
if (!string.IsNullOrEmpty(xml))
{
xmlDoc.LoadXml(xml);
payloadElem.InnerXml = xmlDoc.DocumentElement.OuterXml;
}
}
catch (Exception exception)
{
payloadElem.InnerXml = exception.Message;
}
return payloadElem;
}
public static void Main()
{
var xmlInput = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<CreateTransportRequest>\r\n<transportId>42</transportId>\r\n<v1></v1>\r\n</CreateTransportRequest>";
var payloadElem = GetPayloadElement(xmlInput);
var pendingRequest = new Request
{
SomeStuff = "Lorem Ipsum",
Payload = payloadElem
};
using (var ms = new MemoryStream())
using (var sw = new StreamWriter(ms, Encoding.UTF8))
{
new XmlSerializer(typeof(Request)).Serialize(sw, pendingRequest);
Console.WriteLine(Encoding.UTF8.GetString(ms.ToArray()));
}
}
}