2012-08-28 63 views
1

XML文件:C#的WinForms窗体加载组合框的DropDownList从XML文件中获取价值

<?xml version="1.0" encoding="utf-16"?> 
<XMLFILE> 
<Active>0</Active> 
<Hits_Method>1</Hits_Method> 
</XMLFILE> 

我想要做的是Form1_Load的获得ComboBox4从XML文件(Hits_Method)的值,当程序开始向我展示价值。我尝试这样的事情,但没有奏效

// ------------------- StartUP Load 
private void Form1_Load(object sender, EventArgs e) 
{ 
    // --------------- Read XML File/Data: Settings_Ads_General 
    String xmlfile = "Settings_General.xml"; 
    XmlTextReader xreader = new XmlTextReader(xmlfile); 

    string comboBox4Value = xreader.GetAttribute("Hits_Method"); 
    comboBox4.SelectedIndex = comboBox4Value; 

} 
+4

老兄,你得到一个属性,当你想要一个元素 –

+0

我尝试这样的: 串comboBox4Value = xreader.ReadElementString( “Hits_Method”); comboBox4.SelectedIndex = comboBox4Value; 但我得到错误“不能隐式转换类型'字符串'为'int'” –

+0

检查我的答案转换类型的问题。 – Jan

回答

2

试试这个:基于XPath表达式

private void Form1_Load(object sender, EventArgs e) 
    { 
     // --------------- Read XML File/Data: Settings_Ads_General 
     String xmlfile = "Settings_General.xml"; 
     XmlDocument doc = new XmlDocument(); 
     doc.Load(xmlfile); 

     string comboBox4Value = doc.SelectSingleNode("XMLFILE/Hits_Method").InnerText; 
     comboBox4.SelectedIndex = Convert.ToInt32(comboBox4Value); 

    } 

SelectSingleNode方法提取数据。并且“XMLFILE/Hits_Method”是导致您价值的XPath。

+0

很酷谢谢,正在工作,我需要如何 –

+0

没有问题。但是在我仔细查看你以前的问题之后,你应该先考虑看教程。任何好的书都会回答你将要面对的下一个150个问题。我不想说卑鄙。我们都在某个时候开始。但我认为一个有点结构化的学习过程是最好的。 – Jan

+0

我从c#winforms开始3天前...我来自php编程,但有些命令不是desame,学习一些东西的最好方法是做一些事情......如果你不尝试做某事,阅读并没有什么帮助 –

0

看看这个link由MSDN提供。它提供了一个很好的例子,说明如何获得您正在寻找的价值。

1

我将使用XmlDocument和XmlNode类。

{ 
    String sPath = "file.xml" 
    XmlDocument doc = new XmlDocument(); 
    doc.Load(sPath) 
    XmlNode node = doc.SelectSingleNode("XMLFILE/Hits_Method"); 
    if (node != null) 
     comboBox4.SelectedIndex = node.InnerText; 
}