Vâng, sử dụng t anh ta XmlSerializer
nó sẽ tuần tự hóa List<T>
miễn là T
(hoặc trong trường hợp của bạn Tag
) có thể được tuần tự hóa.
Move move = new Move { MoveName = "MyName" };
move.oTags.Add(new Tag { TagName = "Value1" });
move.oTags.Add(new Tag { TagName = "Value2" });
move.oTags.Add(new Tag { TagName = "Value3" });
StringBuilder output = new StringBuilder();
var writer = new StringWriter(output);
XmlSerializer serializer = new XmlSerializer(typeof(Move));
serializer.Serialize(writer, move);
Console.WriteLine(output.ToString());
này kết quả đầu ra sử dụng cấu trúc lớp hiện tại của bạn như:
<?xml version="1.0" encoding="utf-16"?>
<Move xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<oTags>
<Tag>
<TagName>Value1</TagName>
</Tag>
<Tag>
<TagName>Value2</TagName>
</Tag>
<Tag>
<TagName>Value3</TagName>
</Tag>
</oTags>
<MoveName>MyName</MoveName>
</Move>
tôi sẽ xem liệu tôi có thể tìm thấy một cách để phù hợp với lược đồ XML hiện tại của bạn, nhưng bạn có thể tra cứu làm thế nào để áp dụng XmlAttributes và chơi xung quanh với nó cho mình.
EDIT:
Nếu bạn thay đổi khai báo lớp bạn để sử dụng XmlAttributes sau đây, bạn sẽ đạt được các lược đồ XML chính xác như trong ví dụ của bạn:
public class Move
{
[XmlElement(Order = 1)]
public string MoveName {get; set;}
[XmlElement(Order = 2, ElementName = "Tags")]
public List<Tag> oTags = new List<Tag>();
}
public class Tag
{
[XmlText]
public string TagName {get; set;}
}
nào khi tuần tự sẽ tạo ra:
<?xml version="1.0" encoding="utf-16"?>
<Move xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<MoveName>MyName</MoveName>
<Tags>Value1</Tags>
<Tags>Value2</Tags>
<Tags>Value3</Tags>
</Move>
Nguồn
2013-11-15 03:04:58
Bất kể câu trả lời hiện tại là gì, _how_ bạn có đang theo dõi nó không? Ví dụ, nếu bạn sử dụng 'XmlSerializer', nó sẽ hoạt động. (mặc dù bạn có thể phải sử dụng một số thuộc tính hoặc sáng tạo đặc biệt để có được kết quả lược đồ XML cụ thể mà bạn muốn) –
Tôi đang sử dụng XmlSerializer –
Bạn muốn lược đồ này như thế nào? Có vẻ như một chút mơ hồ về cách bạn xử lý nhiều thẻ. Có phải là ' tên Giá trị1 Giá trị2 ... Giá trịN '? Ngoài ra, bạn có linh hoạt với việc thay đổi các lớp 'Move' và' Tag' của mình không? –