将xml文件加载到内存中

时间:2012-06-10 12:38:47

标签: c# xml

我需要在内存中加载一个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
        }

3 个答案:

答案 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;

试试这个程序会对你有帮助。

相关问题