2

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

3 回答 3

5

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

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

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

于 2012-06-10T12:44:50.897 回答
1

请参阅XmlDocument类。Load() 方法可以满足您的需求。

于 2012-06-10T12:40:05.137 回答
1

首先您必须将xml文件保存在您的项目文件或硬盘中。然后只有您可以在后面的代码中加载xml文件。您可以动态创建xml文件。它会好得多。

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;

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

于 2012-06-10T13:24:43.123 回答