2011-09-05 142 views
0

我有一個用戶輸入屏幕,用戶輸入相關的名稱和編號。輸出xml預計是C#XML列表<int>

<Names> 
    <Name>XYX</Name> 
    <Asso> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
     <Num>1</Num> 
    </Asso> 
</Names> 

由於有很多<Name>標籤。我創建了一個類來存儲像

public class Name{public string Name;public list<int> Num;} 

值,同時宣佈說,Name[] instance = new Name[10];,爲班級的11實例。 我使用Num值和Name來設置實例[0],實例[1]的值。

而當我試着打印出XML,而使用

foreach (Name allintance in instance)編寫的XML文件。我有正確的名稱值,但Num值不寫入(它唯一的空標籤)。

請讓我知道最新的問題..也讓我知道哪裏有更好的方法。

@Added信息 類文件

public class Name { 
    public Name() 
    { 
     Num = new List<int>(); 
    } 
    public string Name { get; set; } 
    public List<int> Num { get; set; } 
} 

和用於分配值的代碼是

     instance[0] = new Name(); 
        instance[0].Name = textbox_Name.Text.ToString(); 
        instance[0].Num = NumList; 

我已經定義了NumList作爲List<int>並加入整型值i。從形式得到。

而且寫出來的XML文件

我使用的XmlWriter和附加每個名稱還有相關的民值作爲上述標籤。我的問題是通過這種方法,我能夠獲得XML標籤中的名稱條目。但是Num標籤會導致空標籤。

+1

什麼問題了嗎?目前尚不清楚。 – BrokenGlass

+0

儘管您並不是在說如何獲取XML,但我假設您使用的是XML序列化。 – TheVillageIdiot

+0

我沒有使用序列化..只是XMLwriter,並試圖從類實例中傾倒出值.. – Mullaly

回答

1

試試這個:

[Serializable] 
public class Name 
{ 
    public Name() 
    { 
     Num=new List<int>(); 
    } 

    [XmlAttribute("Name")] 
    public string Name{get;set;} 

    [XmlArray("Num")] 
    public List<int> Num{get;set;} 
} 

生成XML:

private void GetXML(Name n) 
{ 
    var xmlsr=new XmlSerialize(typeof(Name)); 
    var ms=new MemoryStream(); 
    var tr = new XmlTextWriter(ms,Encoding.Unicode); 
    xmlsr.Serialize(tr,n); 
    var sb=new StringBuilder(Encoding.Unicode.GetString(ms.ToArray())); 
    Console.WriteLine(sb.ToString());//xml for object n 
} 
+0

感謝您的回答,但不幸的是我想要這樣的東西..用戶輸入文本框中的「名稱」和字段,爲每個名稱輸入適當的Num條目。 Num條目也填充在文本框中。現在的規則是,可以有儘可能多的條目作爲「名稱」,但總的Num條目(爲每個「名稱」添加Num條目)應該是64.因此,我需要在生成之前驗證所有的名稱條目XML標籤。 – Mullaly