2013-07-27 30 views
0

好吧,我有一個List其中我想從一個Xlm文件中添加一些數據。我List看起來像這樣:c#使用XmlTextReader在列表<Tuple<>>中添加字符串

List<Tuple<string,string,string>> BookList; 

而且我的XML文件看起來像這樣:

<Book> 
    <Name>BookName</Name> 
    <Genre>BookGenre</Genre> 
    <Year>BookYear</Year> 
</Book> 

我要的是從XML文件中讀取,每次我讀了XmlNodeType.Text添加它裏面的名單。但是,如何才能增加我可以說,當我在最前一頁字符串找到第一個XmlNodeType.Text,然後當我閱讀列表的第二個字符串中的第二XmlNodeType.Text .... 什麼IM現在做的是這樣的:

int count = 0; 
string name,genre,year; 
while (reader.Read()) 
{ 
    if (count.Equals(3)) 
    { 
     BookList.Add(Tuple.Create(name,genre,year)); 
     count = 0; 
    }//if 

    switch (reader.NodeType) 
    { 
     case XmlNodeType.Text: 
     switch (count) 
     { 
      case 0: 
      name = reader.Value; 
      count++; 
      break; 
      case 1: 
      genre = reader.Value; 
      count++; 
      break; 
      case 2: 
      year = reader.Value; 
      count++; 
      break; 

     }//switch 
     break; 
    }//switch 
}//while 

無論如何避免使用這個醜陋的switch(count)

+0

你有沒有考慮這些屬性創建'Book'類和使用'XmlSerializer'呢? –

+0

不...但現在你給出了一個起點。現在去檢查一下。 – oimitro

回答

0

你也可以使用foreach循環您的節點,而不是與交換機計數

相關問題