如何检索数据并希望在C#中从XML读取数据

时间:2010-03-30 11:45:11

标签: c# xml winforms

我正在使用Windows应用程序,我有四个组合框(comboeventname,combosendtype,comboType,comboschedule)....我已经使用XML编写器将这些组合值存储到XML文件中... 现在我想在运行时打开表单时在表单加载事件中显示组合框中的数据...如何从该XML文件中检索该值以及如何在运行时在组合框中显示该数据?我该怎么做?

任何人都告诉我这个解决方案.....

提前致谢...

4 个答案:

答案 0 :(得分:2)

如果您显示xml或用于编写它的代码,我们可能会XmlReader工作,但我不确定这是否是最佳选择。据推测,要在组合框中显示它们,数据量并不是很大。在这种情况下,使用以下任何一个都会简单得多:

  • 的XmlDocument
  • 的XDocument
  • XmlSerializer的

等将数据加载到DOM或对象模型中,并从他们的工作。 LINQ-to-XML(通过XDocument)可能特别有吸引力。例如,使用xml:

<options>
  <option value='123'>ABC</option>
  <option value='234'>DEF</option>
  <option value='567'>GHI</option>
</options>

以下XDocument代码可能有效:

var options =
      from option in XElement.Parse(xml).Elements("option")
      select new {
         value = (int)option.Attribute("value"),
         text = option.Value
      };

答案 1 :(得分:0)

使用XmlDocument或XDocument可能要容易得多。

的XmlDocument: http://msdn.microsoft.com/en-us/library/system.xml.xmldocument.selectsinglenode.aspx

private void Form1_Load(object sender, EventArgs e)
        {
            //load the xml document;

            XmlDocument xdoc = new XmlDocument;
            xdoc.Load("YourFile.xml");


            // read the values

            // using indexers
            method1 = xdoc["root"]["Element"].Value;

            // using xpath to select nodes
            method2 = xdoc.SelectSingleNode( "root/element/element" ).Value;

            // attributes
            method3 = xdoc.SelectSingleNode("root/element").Attributes["YourAttribute"].Value;

        }

XmlReader更适用于大型XML文件,1000个元素,您不希望将整个文档加载到内存中。使用XmlReader时,您的文档听起来很小。

答案 2 :(得分:0)

我建议使用XmlReader。有很多文档,但这是一个开始:

http://msdn.microsoft.com/en-us/library/9d83k261%28VS.80%29.aspx

获得数据后,您可以将它们添加到表单控件中。

或者你可以使用XmlDocument - 尽管它的性能不如XmlReader,我怀疑你会注意到这种情况。

答案 3 :(得分:0)

我在xsd映射之前使用过为xml文档生成类映射。 在visual studio命令提示行上使用xsd命令,如下所示。 这将生成映射类然后 您应该将xml文件反序列化为对象并强制转换为生成的映射类。

xsd“xml文件的路径”这会生成xsd文件

再次命令promt xsd“pat of generated xsd file”/ CLASSES

有关详细信息,请查看sample