2012-08-08 108 views
1

我想將標籤名稱爲「Event」的所有節點的屬性值放入WindowsForm的組合框中。我已經嘗試了下面的代碼,但是,沒有填充組合框。加載特定的XML節點值C#

if (selectEventComboBox.SelectedIndex != -1) 
    { 
     string filePath = 
       Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) 
       + "\\" + selectFileComboBox.SelectedItem.ToString() 
       + "dogs.xml"; 
     XmlDocument doc = new XmlDocument(); 
     doc.Load(filePath); 

     XmlNodeList eventList = doc.GetElementsByTagName("Event"); 
     for (int count = 0; count < eventList.Count; count++) 
     { 
      selectEventComboBox.Items.Add(eventList[count].Attributes.ToString()); 
     } 
    } 
+2

很難評論沒有看到XML文檔 – paul 2012-08-08 15:36:09

+0

(一些)您是否嘗試過步進通過代碼與調試?如果是,那麼調試器顯示文檔已正確加載? – ikh 2012-08-08 15:39:16

+0

我試圖添加xml,但使用「輸入代碼」標記將其添加到問題事件時看起來很可怕 – user1546315 2012-08-08 15:46:14

回答

2

這工作myxml.xml的罰款

XmlDocument doc = new XmlDocument(); 
doc.Load("myxml.xml"); 
XmlNode root = doc.DocumentElement; 
XmlNodeList nodeList = root.SelectNodes("//Event"); 

for (int i = 0; i < nodeList.Count; i++) 
{ 
    Console.WriteLine("row: {0}, InnerText: {1}, ID: {2}",i, nodeList[i].InnerText, nodeList[i].Attributes["id"].Value); 
} 

內容

<?xml version="1.0" encoding="utf-8" ?> 
<root> 
    <Event id="1">Event one</Event> 
    <Event id="2">Event two</Event> 
    <Event id="3">Event three</Event> 
    <Event id="4">Event four</Event> 
</root> 

enter image description here

+0

我認爲問題在於我試圖獲取屬性而不是節點的內部文本。所以我有一個例子,它是。我想顯示123456 – user1546315 2012-08-08 16:15:28

+0

更新了示例 – 2012-08-08 16:20:26