2011-04-14 40 views
0

我有一些配置中讀取一次,所以我把這些屬性的XML文件:如何加載XML配置文件中asp.net項目

<items> 
    <item id="" name=""> 
    <page src=""/> 
    <page src=""/> 
    <page src=""/> 
    </item> 

    <item id="" name=""> 
    <page src=""/> 
    <page src=""/> 
    <page src=""/> 
    </item> 
............ 
</items> 

在java中,我可以讀中這個文件使用jdom或dom4j的servlet的init方法。 將這些屬性放入列表或地圖中。

但在asp.net中,我不知道如何實現這一點,任何建議?

回答

3

這是假設你正在使用c#。它基本上讀取xml使用linq到XML到定義的類。 GetConfigItems將返回一個列表項<>。我還沒有測試過這個,但它是沿着正確的路線。

public class Item 
{ 
    public string id { get; set; } 
    public string name { get; set; } 
    public List<Page> Pages { get; set; } 
} 

public class Page 
{ 
    public string src { get; set; } 
} 

public class ConfigHelper 
{ 
    public List<Item> GetConfigItems() 
    { 
     XDocument doc = XDocument.Load("MyConfigFile.xml"); 
     List<Item> items = (from i in doc.Elements("item") 
          select new Item() 
           { 
            id = i.Attribute("id").Value, 
            name = i.Attribute("name").Value, 
            Pages = (from p in i.Elements("page") 
              select new Page() 
              { 
               src = p.Attribute("src").Value 
              }).ToList() 
           } 
          ).ToList(); 

    } 
} 
0

DavidGouge在這裏找到了正確的路線。然而,他的ConfigHelper方法GetConfigItems()應該如下構造:

public List<Item> GetConfigItems() 
    { 
     XDocument doc = XDocument.Load("MyConfigFile.xml"); 
     List<Item> items = (from i in doc.Descendants("item") 
          select new Item() 
          { 
           id = i.Attribute("id").Value, 
           name = i.Attribute("name").Value, 
           Pages = (from p in i.Descendants("page") 
             select new Page() 
             { 
              src = p.Attribute("src").Value 
             }).ToList() 
          }).ToList(); 
     return items; 
    }