我有一些配置要读取一次,所以我将这些属性放在xml文件中:
<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方法中读取此文件。 然后将这些属性放在List或Map中。
但是在asp.net中,我不知道如何实现这个,有什么建议吗?
答案 0 :(得分:3)
这假设你正在使用c#。它基本上使用linq到xml读取xml到定义的类中。 GetConfigItems然后将返回List&lt;&gt;的项目。我没有对此进行测试,但它是沿着正确的方向进行的。
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();
}
}
答案 1 :(得分: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;
}