2012-01-12 31 views
6

tôi phải tạo ra XML sauSerialize XML với chuỗi XML

<object> 
    <stuff> 
     <body> 
      <random>This could be any rondom piece of unknown xml</random> 
     </body> 
    </stuff> 
</object> 

Tôi đã ánh xạ này để một lớp học, với một tài sản cơ thể có kiểu string.

Nếu tôi đặt cơ thể vào chuỗi giá trị: "<random>This could be any rondom piece of unknown xml</random>"

Chuỗi được mã hóa trong serialization. Làm thế nào tôi không thể mã hóa chuỗi để nó được viết dưới dạng XML thô?

Tôi cũng sẽ muốn có thể deserialize điều này.

+0

Ngôn ngữ nào? Nền tảng gì? – Oded

+0

Opps, justed đã thêm các thẻ .NET và C# – John

Trả lời

5

XmlSerializer sẽ không tin tưởng bạn để tạo xml hợp lệ từ string. Nếu bạn muốn một thành viên là ad-hoc xml, nó phải giống như XmlElement. Ví dụ:

[XmlElement("body")] 
public XmlElement Body {get;set;} 

với Body một XmlElement tên random với InnerText của "This could be any rondom piece of unknown xml" sẽ làm việc.


[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

Cảm ơn bạn, có vẻ như bạn đã rất chú ý đến việc xml serilization và bạn có thể trả lời: http://stackoverflow.com/questions/8853082/custom-xml-serialization – John

+0

Giải pháp tuyệt vời, thậm chí Deserialization hoạt động - nhưng nếu XML ngẫu nhiên giống như ' --- -------'? Sau đó, nó không thể được nạp vào một XmlDocument. Đó là những gì tôi sẽ cần phải làm - với deserialization. – Nenotlep

Các vấn đề liên quan