将 XML 文件加载到内存中

本文关键字:内存 加载 XML 文件 | 更新日期: 2023-09-27 18:36:47

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

将 XML 文件加载到内存中

您应该使用 XDocument Load 方法: http://msdn.microsoft.com/en-us/library/bb343181.aspx

我认为使用XDocument比XmlDocument更好...但这取决于您的要求...

XDocument比XmlDocument更优化内存,我认为它们都易于使用(用于从xml获取值)

请参阅 XmlDocument 类。Load() 方法可以执行您想要的操作。

首先,您必须将 xml 文件保存在项目文件或硬盘中。然后,只有您可以在代码隐藏中加载 xml 文件。您可以创建xml文件 dynamically.it 这会好得多。

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;

试试这个程序,它会帮助你。