序列化XML的XML字符串
问题描述:
我具有产生以下XML序列化XML的XML字符串
<object>
<stuff>
<body>
<random>This could be any rondom piece of unknown xml</random>
</body>
</stuff>
</object>
我已映射此一类,具有字符串类型的身体属性。
如果我定身字符串值:“<random>This could be any rondom piece of unknown xml</random>
”
的字符串被序列化过程中的编码。我怎样才能不编码字符串,以便它被写为原始XML?
我也希望能够反序列化这一点。
答
XmlSerializer
根本不会相信你从string
产生有效的XML。如果你想有一个成员是临时的XML,它必须像XmlElement
。例如:
[XmlElement("body")]
public XmlElement Body {get;set;}
与Body
一个XmlElement
命名random
与"This could be any rondom piece of unknown xml"
InnerText
会工作。
[XmlRoot("object")]
public class Outer
{
[XmlElement("stuff")]
public Inner Inner { get; set; }
}
public class Inner
{
[XmlElement("body")]
public XmlElement Body { get; set; }
}
static class Program
{
static void Main()
{
var doc = new XmlDocument();
doc.LoadXml(
"<random>This could be any rondom piece of unknown xml</random>");
var obj = new Outer {Inner = new Inner { Body = doc.DocumentElement }};
new XmlSerializer(obj.GetType()).Serialize(Console.Out, obj);
}
}
什么语言?什么平台? – Oded 2012-01-12 10:11:23
哎呀,justed增加了.NET和C#的标签 – John 2012-01-12 10:16:08