【问题标题】:How to Retrieve data and want to read data from XML in C#如何在 C# 中检索数据并希望从 XML 中读取数据
【发布时间】:2010-03-30 11:45:10
【问题描述】:

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

谁能告诉我这个的解决方案.....

在此先感谢...

【问题讨论】:

  • 如果我理解正确你想加载 xml 文件,选择每个组合框的设置,然后设置值?如果是这样,您能否提供您的 xml 文件的示例?
  • “我已经使用 XML 编写器将该组合值存储到 XML 文件中” - 它到底是什么样的?
  • 你看过文档了吗? - 当有页面和页面的示例可以在 2 秒内回答您的问题时,我不确定在 SO 上提出这样的基本问题是否有益......
  • @Adrian - 奇怪的是,正确 使用XmlReader 并不是我所说的基本问题。这就是为什么我总是建议不要这样做;-p
  • 我从那个组合框中得到了四个值,我通过保存按钮存储在 XML 文件中,xml 编写器用于将值存储在该 XML 文件中......现在我想显示数据每当我从保存的 XMl 文件中运行该表单时,组合框...

标签: c# xml winforms


【解决方案1】:

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

  • XmlDocument
  • XDocument
  • XmlSerializer

etc 将数据加载到 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
      };

【讨论】:

    【解决方案2】:

    使用 XmlDocument 或 XDocument 可能更容易。

    Xml 文档: 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,您的文档听起来太小了。

    【讨论】:

    • 那个me​​thod2表示什么?
    【解决方案3】:

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

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

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

    您也可以使用 XmlDocument - 虽然它的性能不如 XmlReader,但我怀疑您会注意到这种情况。

    【讨论】:

      【解决方案4】:

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

      xsd "xml 文件的路径" 这会生成 xsd 文件

      比命令提示符再次 xsd "生成的 xsd 文件的 pat" /CLASSES

      详情请看sample

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多