2012-01-12 87 views
6

我具有产生以下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?

我也希望能够反序列化这一点。

+0

什么语言?什么平台? – Oded 2012-01-12 10:11:23

+0

哎呀,justed增加了.NET和C#的标签 – John 2012-01-12 10:16:08

回答

5

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); 
    } 
} 
+0

谢谢,你似乎很避让关于XML serilization,和偶然你可以回答:http://stackoverflow.com/questions/8853082/custom-xml-serialization – John 2012-01-13 16:30:12

+0

将溶液冷却,甚至反序列化的作品 - 但如果随机XML是像' --- -------'?然后它不能被加载到一个XmlDocument。这就是我需要做的 - 反序列化。 – Nenotlep 2013-01-16 13:15:55