2012-01-18 33 views
2

序列化一個類時,我得到這種格式的xml。序列化:如何獲得.NET中每個元素的唯一名稱?

<Root Name="blah"> 
    <Element>1</Element> 
    <Element>2</Element> 
    <Element>3</Element> 
    <Element>4</Element> 
</root> 

我的班級

public class Root 
{ 
    public List<data> Element { get; set; } 
} 

但我需要的數據格式:

<Root Name="blah"> 
    <Element0>1</Element0> 
    <Element1>2</Element1> 
    <Element2>3</Element2> 
    <Element3>4</Element3> 
</root> 

請幫助...

+0

看起來很奇怪,爲什麼你需要那個?有獨特的elemtn屬性值而不是名稱?例如' 1' – sll 2012-01-18 18:08:40

+1

我看不出如何使用不同的對象名稱。我想知道,爲什麼你甚至需要這種格式。 – 2012-01-18 18:08:56

+0

用XDocument或XmlDocument構建自己的xml – 2012-01-18 18:09:24

回答

3

這根本不是一個很適合的定期序列化程序;並實現IXmlSerializable是矯枉過正。

只需創建一個您需要的DOM;一個良好的開端會的XElement:

var el = new XElement(
    new XAttribute("Name", obj.Name), 
    obj.Element.Select((i,child) => 
     new XElement("Element" + i, child)) 
); 
var xml = el.ToString(); 

(未經測試)

0

我不知道你是否能自動使用XML序列化做到這一點。

您確定設置節點的編號不能被接受爲屬性,或者可能會將您的節點按照以下語法進行分解?

<Element> 
    <Order>0</Order> 
    <Value>1</Value> 
</Element> 
相關問題