我需要在内存中加载一个xml文件,以便我可以从不同的表单中多次访问它。 xml采用以下格式:
<Slides>
<Slide>
<Name>Name 1</Name>
<Value>Value 1</Value>
<Type>Type 1</Type>
</Slide>
<Slide>
<Name>Name 2</Name>
<Value>Value 2</Value>
<Type>Type 2</Type>
</Slide>
</Slides>
我不想使用数据库来存储变量。有没有其他方法将数据存储在内存中? 现在我正在为每个幻灯片和流媒体播放器使用txt文件,我相信这不是最佳选择。
编辑: 我添加了这段代码,但是每次都可以在不再读取xml文件的情况下获取幻灯片吗?
var slides = from s in XElement.Load("slides.xml").Elements("Slide")
select s;
foreach (var slide in slides)
{
//code
}
答案 0 :(得分:5)
您应该使用XDocument Load方法:http://msdn.microsoft.com/en-us/library/bb343181.aspx
我认为使用XDocument比使用XmlDocument更好......但这取决于你的要求......
XDocument比XmlDocument更加内存优化,我认为它们都易于使用(从xml获取值)
答案 1 :(得分:1)
请参阅XmlDocument课程。 Load()方法可以满足您的需求。
答案 2 :(得分:1)
首先,您必须将xml文件保存在项目文件或硬盘中。然后只能在后面的代码中加载xml文件。 你可以创建xml file dynamically。它会好得多。
using System.Xml;
XmlDocument myxml = new XmlDocument();
myxml.Load("D:/sample.xml");//Load you xml file from you disk what you want to load
string element_1 = myxml.GetElementsByTagName("Name")[0].InnerText;
string element_2 = myxml.GetElementsByTagName("Value")[0].InnerText;
string element_3 = myxml.GetElementsByTagName("Value")[0].InnerText;
string element_4 = myxml.GetElementsByTagName("Name")[1].InnerText;
string element_5 = myxml.GetElementsByTagName("Value")[1].InnerText;
string element_6 = myxml.GetElementsByTagName("Value")[1].InnerText;
试试这个程序会对你有帮助。