2011-04-14 71 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; 
    } 
相关问题